use do_high for CRM_search
[APKPM.git] / persistant_worker.pl
index e14d48e..42dabe8 100755 (executable)
@@ -76,7 +76,7 @@ foreach my $ip ( keys %$poll ) {
                methods    => [
                        {
                                decode => 'd_json',
-#                              encode => 'e_json',
+                               encode => 'e_json',
                                name   => $method,
                                body   => sub {
 
@@ -100,23 +100,24 @@ foreach my $ip ( keys %$poll ) {
 
                if ( $@ ) {
                        $redis->sadd("$variant.$ip.error" => $@);
-                       return "error: $@";
+                       return { error => $@ };
                } elsif ( ! $hash ) {
                        $redis->sadd("$variant.$ip.empty" => $port);
-                       return "empty";
+                       return { error => 'empty' };
                } else {
                        $redis->sadd("$variant.$ip.ok" => $port);
                }
 
                $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
+               return $hash; # body end
 
 # XXX -- worker body
                                },
@@ -132,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 {
 
@@ -198,17 +199,21 @@ $driver->add_job({
                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);
+               $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, zte_poll => $row }  ; # 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;