X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=gearman_driver.pl;h=667c9286240a7de5b02a3f9720121a2ca3b75c1b;hb=b7ad83dc3edd53f4023f67440774c636e120cec2;hp=0a7f874cf53b28d3ab5eea3586e58560f3d0dadd;hpb=1d051970a06f4afc43874510bdf18272e3bf4692;p=APKPM.git diff --git a/gearman_driver.pl b/gearman_driver.pl index 0a7f874..667c928 100755 --- a/gearman_driver.pl +++ b/gearman_driver.pl @@ -4,10 +4,50 @@ use warnings; use Gearman::Driver; use lib 'lib'; +my $dir = $0; +$dir =~ s{/[^/]+$}{}; +chdir $dir || die "can't chdir into $dir"; + +$SIG{__WARN__} = sub { print STDERR @_ if $ENV{DEBUG} }; + my $driver = Gearman::Driver->new( namespaces => [qw(APKPM)], - server => 'localhost:4730', -# server => 'localhost:4731,localhost:7003', + configfile => 'config.yaml', + loglevel => 'DEBUG', + logfile => 'log/gearman.log', + server => $ENV{GEARMAN} || 'localhost:4730', interval => 3, + job_runtime_attributes => { + 'APKPM::CPE::poll' => { + max_processes => 1, + min_processes => 0, + }, + 'APKPM::CPE::info' => { + max_processes => 40, + min_processes => 0, + }, + 'APKPM::Ping::ping' => { + max_processes => 1, + min_processes => 0, + }, + 'APKPM::Store::insert' => { + max_processes => 2, + min_processes => 0, + }, + + 'APKPM::DSLAM::search' => { + max_processes => 10, + min_processes => 0, + }, + 'APKPM::CRM::search' => { + max_processes => 3, + min_processes => 0, + }, + }, ); + +open(my $pid, '>', '/tmp/apkpm.driver.pid'); +print $pid "$$\n"; +close $pid; + $driver->run;