--- a/bin/gearman_decode_worker.pl Mon Aug 04 15:45:02 2014 +0200
+++ b/bin/gearman_decode_worker.pl Thu Aug 07 23:50:08 2014 +0200
@@ -16,6 +16,7 @@
use Gearman::Worker;
use Mojo::JSON;
use Mojo::Util qw(decode slurp);
+use Mojo::Loader;
use File::Temp;
use lib 'lib';
@@ -27,8 +28,14 @@
my $config = load_config($ARGV[0]);
-eval "require $config->{Storage}->{Type}";
-my $storage = $config->{Storage}->{Type}->new($config->{Storage});
+my $loader = Mojo::Loader->new;
+
+my $storage_class = $config->{Storage}->{Type};
+if (my $e = $loader->load($storage_class)) {
+ die ref $e ? "Exception: $e" : 'Not found!';
+}
+
+my $storage = $storage_class->new(config => $config->{Storage});
my $worker = Gearman::Worker->new(job_servers => $config->{DecodeQueue}->{GearmanServers});