X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=gearman_driver.pl;h=8d5a346e865f4021b932868915551ff1e125d075;hb=4e897268ea351ae8a2e285ae62203a561b3f41ba;hp=3094cbb426dbe3a4f02dbcb8a6600929f9ea8f14;hpb=1a817555c03cbb7b08409d3bb0a38e4d359c5f76;p=APKPM.git diff --git a/gearman_driver.pl b/gearman_driver.pl index 3094cbb..8d5a346 100755 --- a/gearman_driver.pl +++ b/gearman_driver.pl @@ -4,10 +4,66 @@ 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)], + configfile => 'config.yaml', + loglevel => 'DEBUG', + logfile => 'log/gearman.log', server => $ENV{GEARMAN} || 'localhost:4730', -# server => 'localhost:4731,localhost:7003', interval => 3, + job_runtime_attributes => { + 'APKPM::Poll::poll_prefix' => { + max_processes => 1, + min_processes => 0, + }, + 'APKPM::Poll::poll_ip_username' => { + max_processes => 40, + min_processes => 0, + }, + 'APKPM::CPE::poll' => { + max_processes => 1, + min_processes => 0, + }, + 'APKPM::CPE::ping' => { + max_processes => 40, + min_processes => 0, + }, + 'APKPM::Ping::ping' => { + max_processes => 1, + min_processes => 0, + }, + 'APKPM::Davolink::info' => { + max_processes => 30, + min_processes => 0, + }, + 'APKPM::EasyGateway::info' => { + max_processes => 5, + 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;