This patch introduces locking in fines.pl. It does so by leveraging on
bug 25109, which introduces a generic locking implementation on
Koha::Script.
The introduced changes:
1. Try to get the lock
2.a. If success, normal execution happens
2.b. If rejected, cronlogaction is called with a meaningful message and
a normal exit happens, so we don't flood the logs in vain. --verbose
will make the script print the same message on STDERR, as already is
the case with this script
To test:
1. Apply this patch
2. In two separate consoles run:
$ kshell
k$ perl misc/cronjobs/fines.pl --verbose
SUCCESS => The first one runs normally, the second one exists really fast
and prints a message about the lock.
3. Sign off :-D
Sponsored-by: Orex Digital
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
use Getopt::Long;
use Carp;
use File::Spec;
+use Try::Tiny;
use Koha::Calendar;
use Koha::DateUtils;
exit;
}
+my $script_handler = Koha::Script->new({ script => $0 });
+
+try {
+ $script_handler->lock_exec;
+}
+catch {
+ my $message = "Skipping execution of $0 ($_)";
+ print STDERR $message
+ if $verbose;
+ cronlogaction( $message );
+ exit;
+};
+
cronlogaction();
my @borrower_fields =