From 366eeb60b263af1e0ced0c2ea7e25bbba530bffc Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Wed, 19 Jul 2017 11:50:52 -0400 Subject: [PATCH] Fine generator server-side parallel Signed-off-by: Bill Erickson --- Open-ILS/src/support-scripts/fine_generator.pl | 35 +++++++++----------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/Open-ILS/src/support-scripts/fine_generator.pl b/Open-ILS/src/support-scripts/fine_generator.pl index fd030a9e82..5ae5bac398 100755 --- a/Open-ILS/src/support-scripts/fine_generator.pl +++ b/Open-ILS/src/support-scripts/fine_generator.pl @@ -42,31 +42,20 @@ OpenSRF::System->bootstrap_client( config_file => $config ); my $settings = OpenSRF::Utils::SettingsClient->new; my $parallel = $settings->config_value( fine_generator => 'parallel' ) || 1; -if ($parallel == 1) { - - my $r = OpenSRF::AppSession - ->create( 'open-ils.storage' ) - ->request( 'open-ils.storage.action.circulation.overdue.generate_fines' ); - - while (!$r->complete) { $r->recv }; - -} else { - - my $multi_generator = OpenSRF::MultiSession->new( - app => 'open-ils.storage', - cap => $parallel, - api_level => 1, +my @reqs; +for my $slot (1..$parallel) { + my $r = OpenSRF::AppSession->create('open-ils.storage')->request( + 'open-ils.storage.action.circulation.overdue.generate_fines', + undef, $parallel, $slot ); + push(@reqs, $r); +} - for my $slot (1..$parallel) { - $multi_generator->request( - 'open-ils.storage.action.circulation.overdue.generate_fines', - undef, $parallel, $slot - ); - } - - $multi_generator->session_wait(1); - $multi_generator->disconnect; +# Pull responses from the response queue and discard until complete. +# The first recv response can take a while to arrive. +while (@reqs) { + $_->recv(timeout => 600) foreach @reqs; + @reqs = grep {!$_->complete} @reqs; } unlink $lockfile; -- 2.11.0