2 # ---------------------------------------------------------------------
3 # Fine generator with default grace period param.
4 # ./object_dumper.pl <bootstrap_config> <lockfile> <grace (default 0)>
5 # ---------------------------------------------------------------------
9 use OpenSRF::Utils::JSON;
11 use OpenSRF::Utils::SettingsClient;
12 use OpenSRF::MultiSession;
14 my $config = shift || die "bootstrap config required\n";
15 my $lockfile = shift || "/tmp/generate_fines-LOCK";
18 $grace = '' if (!defined($grace) or $grace == 0);
25 open(F,'/bin/ps axo pid|');
26 while ( my $p = <F>) {
28 if ($p =~ s/\s*(\d+)$/$1/o && $p == $pid) {
29 die "I seem to be running already at pid $pid. If not, try again\n";
35 open(F, ">$lockfile");
39 OpenSRF::System->bootstrap_client( config_file => $config );
40 my $settings = OpenSRF::Utils::SettingsClient->new;
41 my $parallel = $settings->config_value( fine_generator => 'parallel' ) || 1;
45 my $r = OpenSRF::AppSession
46 ->create( 'open-ils.storage' )
47 ->request( 'open-ils.storage.action.circulation.overdue.generate_fines' => $grace );
49 while (!$r->complete) { $r->recv };
53 my $multi_generator = OpenSRF::MultiSession->new(
54 app => 'open-ils.storage',
59 my $storage = OpenSRF::AppSession->create("open-ils.storage");
60 my $r = $storage->request('open-ils.storage.action.circulation.overdue.id_list', $grace);
61 while (my $resp = $r->recv) {
62 my $circ_id = $resp->content;
63 $multi_generator->request( 'open-ils.storage.action.circulation.overdue.generate_fines', $grace, $circ_id );
65 $storage->disconnect();
66 $multi_generator->session_wait(1);
67 $multi_generator->disconnect;