diff -r da690d68c1ff -r e0d6597078a5 bin/gearman_decode_worker.pl --- 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});