pass gearman timeout option correctly
[APKPM.git] / persistant_worker.pl
index 91ec64f..647b2bd 100755 (executable)
@@ -27,6 +27,7 @@ use Redis;
 use lib 'lib';
 use H1::ZTEDSLAM;
 use H1::ZTEMSAN;
+use APKPM::Model;
 
 my ($variant,$max_processes) = @ARGV;
 $variant ||= 'ZTEDSLAM';
@@ -108,10 +109,11 @@ foreach my $ip ( keys %$poll ) {
                }
 
                $self->do_background_json( 'Store_insert', {
-                       _table => 'dslam_h',
+                       _table => 'dslam',
                        ip => $crm->{IP_MANAGEMENT}, # FIXME IP_UREDAJA ?
                        username => $username,
                        timestamp => $self->datetime_now,
+                       variant => $variant,
                        h => $self->to_hstore($hash),
                });
 
@@ -131,9 +133,9 @@ $driver->add_job({
        max_processes => 1,
        min_processes => 0,
        worker          => $worker,
-       name            => "poll_$variant",
+       name            => $variant . '_poll',
        methods    => [ {
-               name            => "poll_$variant",
+               name   => $variant . '_poll',
                encode => 'e_json',
                body   => sub {
 
@@ -193,14 +195,25 @@ $driver->add_job({
 
                $redis->set( "$variant.poll.finish" => $self->datetime_now );
 
+               my $status = APKPM::Model->redis_status;
+               my $row = $status->{poll}->{$variant};
+               $row->{$_} = $status->{"$variant.poll.$_"} foreach ( 'start', 'finish' );
+               $row->{variant} = $variant;
+               $self->do_background_json('Store_insert', { _table => 'dslam_poll', %$row });
+               warn "# dslam_poll ",dump($row);
+
                my $ips = scalar keys %$seen;
                my $ports = 0;
                $ports += scalar keys %{ $seen->{$_} } foreach keys %$seen;
                warn "# finish $ips ips with $ports ports\n";
-               return { ips => $ips, ports => $ports }  ; # body end
+               return { ips => $ips, ports => $ports, dslam_poll => $row }  ; # body end
                }
        } ],
 });
 
+open(my $pid, '>', "/tmp/apkpm.$variant.pid");
+print $pid "$$\n";
+close $pid;
+
 $driver->run;