equal
deleted
inserted
replaced
14 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
14 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 |
15 |
16 use Gearman::Worker; |
16 use Gearman::Worker; |
17 use Mojo::JSON; |
17 use Mojo::JSON; |
18 use Mojo::Util qw(decode slurp); |
18 use Mojo::Util qw(decode slurp); |
|
19 use Mojo::Loader; |
19 use File::Temp; |
20 use File::Temp; |
20 use lib 'lib'; |
21 use lib 'lib'; |
21 |
22 |
22 sub load_config { |
23 sub load_config { |
23 my ($file) = @_; |
24 my ($file) = @_; |
25 return eval($code); |
26 return eval($code); |
26 } |
27 } |
27 |
28 |
28 my $config = load_config($ARGV[0]); |
29 my $config = load_config($ARGV[0]); |
29 |
30 |
30 eval "require $config->{Storage}->{Type}"; |
31 my $loader = Mojo::Loader->new; |
31 my $storage = $config->{Storage}->{Type}->new($config->{Storage}); |
32 |
|
33 my $storage_class = $config->{Storage}->{Type}; |
|
34 if (my $e = $loader->load($storage_class)) { |
|
35 die ref $e ? "Exception: $e" : 'Not found!'; |
|
36 } |
|
37 |
|
38 my $storage = $storage_class->new(config => $config->{Storage}); |
32 |
39 |
33 my $worker = Gearman::Worker->new(job_servers => $config->{DecodeQueue}->{GearmanServers}); |
40 my $worker = Gearman::Worker->new(job_servers => $config->{DecodeQueue}->{GearmanServers}); |
34 |
41 |
35 |
42 |
36 $worker->register_function("dump_decode", 60, sub { |
43 $worker->register_function("dump_decode", 60, sub { |