[open-ils-commits] r16677 - in trunk/Open-ILS/src: perlmods/OpenILS/Application support-scripts (erickson)

svn at svn.open-ils.org svn at svn.open-ils.org
Fri Jun 11 09:52:21 EDT 2010


Author: erickson
Date: 2010-06-11 09:52:20 -0400 (Fri, 11 Jun 2010)
New Revision: 16677

Modified:
   trunk/Open-ILS/src/perlmods/OpenILS/Application/Trigger.pm
   trunk/Open-ILS/src/support-scripts/action_trigger_runner.pl
Log:
added a number of info messages to the action/trigger runner and server code.  the messages provide summary
data about what event defs / hooks are being processed and when/if they complete or timeout.

Modified: trunk/Open-ILS/src/perlmods/OpenILS/Application/Trigger.pm
===================================================================
--- trunk/Open-ILS/src/perlmods/OpenILS/Application/Trigger.pm	2010-06-11 13:50:24 UTC (rev 16676)
+++ trunk/Open-ILS/src/perlmods/OpenILS/Application/Trigger.pm	2010-06-11 13:52:20 UTC (rev 16677)
@@ -479,10 +479,22 @@
 
         $class =~ s/^Fieldmapper:://o;
         $class =~ s/::/_/go;
-
         my $method = 'search_'. $class;
-        my $object_ids = $editor->$method( $filter, {idlist => 1, timeout => 7200} );
 
+        # for cleaner logging
+        my $def_id = $def->id;
+        my $hook = $def->hook;
+
+        $logger->info("trigger: create_batch_events() collecting object IDs for def=$def_id / hook=$hook");
+
+        my $object_ids = $editor->$method( $filter, {idlist => 1, timeout => 10800} );
+
+        if($object_ids) {
+            $logger->info("trigger: create_batch_events() fetched ".scalar(@$object_ids)." object IDs for def=$def_id / hook=$hook");
+        } else {
+            $logger->warn("trigger: create_batch_events() timeout occurred collecting object IDs for def=$def_id / hook=$hook");
+        }
+
         for my $o_id (@$object_ids) {
 
             my $event = Fieldmapper::action_trigger::event->new();
@@ -496,8 +508,12 @@
 
             $client->respond( $event->id );
         }
+        
+        $logger->info("trigger: create_batch_events() successfully created events for def=$def_id / hook=$hook");
     }
 
+    $logger->info("trigger: create_batch_events() done creating events");
+
     $editor->commit;
 
     return undef;
@@ -526,7 +542,7 @@
     my $e = OpenILS::Application::Trigger::Event->new($event_id);
 
     if ($e->validate->valid) {
-        $logger->info("Event is valid, reacting...");
+        $logger->info("trigger: Event is valid, reacting...");
         $e->react->cleanup;
     }
 
@@ -554,7 +570,7 @@
     my $e = OpenILS::Application::Trigger::EventGroup->new(@$events);
 
     if ($e->validate->valid) {
-        $logger->info("Event group is valid, reacting...");
+        $logger->info("trigger: Event group is valid, reacting...");
         $e->react->cleanup;
     }
 
@@ -590,7 +606,7 @@
     }
 
     return $editor->search_action_trigger_event(
-        $query, { idlist=> 1, timeout => 7200 }
+        $query, { idlist=> 1, timeout => 7200, substream => 1 }
     );
 }
 __PACKAGE__->register_method(
@@ -608,6 +624,13 @@
 
     my %groups = ( '*' => [] );
 
+    if($events) {
+        $logger->info("trigger: grouped_events found ".scalar(@$events)." pending events to process");
+    } else {
+        $logger->warn("trigger: grouped_events timed out loading pending events");
+        return \%groups;
+    }
+
     for my $e_id ( @$events ) {
         $logger->info("trigger: processing event $e_id");
 
@@ -618,7 +641,7 @@
         try {
            $e = OpenILS::Application::Trigger::Event->new($e_id);
         } catch Error with {
-            $logger->error("Event creation failed with ".shift());
+            $logger->error("trigger: Event creation failed with ".shift());
         };
 
         next unless $e; 
@@ -626,7 +649,7 @@
         try {
             $e->build_environment;
         } catch Error with {
-            $logger->error("Event environment building failed with ".shift());
+            $logger->error("trigger: Event environment building failed with ".shift());
         };
 
         if (my $group = $e->event->event_def->group_field) {
@@ -670,6 +693,7 @@
 
     for my $def ( keys %$groups ) {
         if ($def eq '*') {
+            $logger->info("trigger: run_all_events firing un-grouped events");
             for my $event ( @{ $$groups{'*'} } ) {
                 try {
                     $client->respond(
@@ -678,11 +702,14 @@
                             ->run($event)
                     );
                 } catch Error with { 
-                    $logger->error("event firing failed with ".shift());
+                    $logger->error("trigger: event firing failed with ".shift());
                 };
             }
+            $logger->info("trigger: run_all_events completed firing un-grouped events");
+
         } else {
             my $defgroup = $$groups{$def};
+            $logger->info("trigger: run_all_events firing events for grouped event def=$def");
             for my $ident ( keys %$defgroup ) {
                 try {
                     $client->respond(
@@ -691,9 +718,10 @@
                             ->run($$defgroup{$ident})
                     );
                 } catch Error with {
-                    $logger->error("event firing failed with ".shift());
+                    $logger->error("trigger: event firing failed with ".shift());
                 };
             }
+            $logger->info("trigger: run_all_events completed firing events for grouped event def=$def");
         }
     }
                 

Modified: trunk/Open-ILS/src/support-scripts/action_trigger_runner.pl
===================================================================
--- trunk/Open-ILS/src/support-scripts/action_trigger_runner.pl	2010-06-11 13:50:24 UTC (rev 16676)
+++ trunk/Open-ILS/src/support-scripts/action_trigger_runner.pl	2010-06-11 13:52:20 UTC (rev 16677)
@@ -19,8 +19,10 @@
 use OpenSRF::System;
 use OpenSRF::AppSession;
 use OpenSRF::Utils::JSON;
+use OpenSRF::Utils::Logger qw/$logger/;
 use OpenSRF::EX qw(:try);
 use OpenILS::Utils::Fieldmapper;
+my $req_timeout = 10800;
 
 # DEFAULT values
 
@@ -146,9 +148,22 @@
         $method =~ s/passive/active/ if $config->{active};
         
         my $req = $ses->request($method, $hook, $config->{context_org}, $config->{filter}, $opt_granularity);
-        while (my $resp = $req->recv(timeout => 1800)) {
-            $opt_debug_stdout and print OpenSRF::Utils::JSON->perl2JSON($resp->content) . "\n";
+
+        my $debug_hook = "'$hook' and filter ".OpenSRF::Utils::JSON->perl2JSON($config->{filter});
+        $logger->info("at_runner: creating events for $debug_hook");
+
+        my @event_ids;
+        while (my $resp = $req->recv(timeout => $req_timeout)) {
+            push(@event_ids, $resp->content);
         }
+
+        if(@event_ids) {
+            $logger->info("at_runner: created ".scalar(@event_ids)." events for $debug_hook");
+        } elsif($req->complete) {
+            $logger->info("at_runner: no events to create for $debug_hook");
+        } else {
+            $logger->warn("at_runner: timeout occurred during event creation for $debug_hook");
+        }
     }
 }
 
@@ -160,7 +175,7 @@
     my $req = $ses->request('open-ils.trigger.event.run_all_pending' => $opt_granularity);
 
     my $check_lockfile = 1;
-    while (my $resp = $req->recv(timeout => 7200)) {
+    while (my $resp = $req->recv(timeout => $req_timeout)) {
         if ($check_lockfile && -e $opt_lockfile) {
             open LF, $opt_lockfile;
             my $contents = <LF>;



More information about the open-ils-commits mailing list