X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=persistant_worker.pl;h=60b60b1e8286062fe2c6b4828ec14a896d8d139c;hb=51713d35e79b8c839eaa6a3578ef7e1d497d2e3c;hp=91ec64f6812e18c310dd613abfff62e3c3ff24e1;hpb=24cf9daaeecf26c5989f9dfdad5fc82e41efa1dd;p=APKPM.git diff --git a/persistant_worker.pl b/persistant_worker.pl index 91ec64f..60b60b1 100755 --- a/persistant_worker.pl +++ b/persistant_worker.pl @@ -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,11 +109,12 @@ 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, - h => $self->to_hstore($hash), + variant => $variant, + h => $hash, }); return "ok $username $ip $port"; # body end @@ -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;