#!/usr/bin/perl
+BEGIN {
+ $SIG{'__WARN__'} = sub { warn $_[0] if $_[0] =~ m/^(#+)/ && length($1) <= $ENV{DEBUG} }
+}
+
package Cog; # persistant Gearman Worker - see the pun?
use Moose;
use lib 'lib';
use H1::ZTEDSLAM;
use H1::ZTEMSAN;
+use APKPM::Model;
my ($variant,$max_processes) = @ARGV;
$variant ||= 'ZTEDSLAM';
my $driver = Gearman::Driver->new(
server => 'localhost:4730',
- interval => 60,
+ interval => 15,
loglevel => 'DEBUG',
logfile => "log/$variant.log",
) || die $!;
name => "poll_$variant",
methods => [ {
name => "poll_$variant",
+ encode => 'e_json',
body => sub {
my ( $self, $job, $workload ) = @_;
$taskset->wait;
$redis->set( "$variant.poll.finish" => $self->datetime_now );
- warn "# seen ", dump($seen);
+
+ 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 => 'zte_poll', %$row });
+ warn "# zte_poll ",dump($row);
my $ips = scalar keys %$seen;
- return "polled $ips IPs"; # body end
+ my $ports = 0;
+ $ports += scalar keys %{ $seen->{$_} } foreach keys %$seen;
+ warn "# finish $ips ips with $ports ports\n";
+ return { ips => $ips, ports => $ports, zte_poll => $row } ; # body end
}
} ],
});
+open(my $pid, '>', "/tmp/apkpm.$variant.pid");
+print $pid "$$\n";
+close $pid;
+
$driver->run;