bin/gearman_decode_worker.pl
changeset 34 e0d6597078a5
parent 20 169c73eb8881
child 43 6070307efd38
--- 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});