Merge branch 'devel' of h1dev:/srv/APKPM/
[APKPM.git] / gearman_driver.pl
index 3094cbb..767f377 100755 (executable)
@@ -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)],
+       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::CPE::poll' => {
+                       max_processes => 1,
+                       min_processes => 0,
+               },
+               'APKPM::CPE::info' => {
+                       max_processes => 40,
+                       min_processes => 1,
+               },
+               '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 => 1,
+               },
+               'APKPM::CRM::search' => {
+                       max_processes => 3,
+                       min_processes => 1,
+               },
+       },
 );
+
+open(my $pid, '>', '/tmp/apkpm.driver.pid');
+print $pid "$$\n";
+close $pid;
+
 $driver->run;