Bug 31995: build_holds_queue.pl should check to see if the RealTimeHoldsQueue syspref is on [v22.05]
The real time hold queue and the build_holds_queue.pl jobs are not 100% compatible in that we should not be running the cron if the real time queue is enabled, this could lead to double server work. It would be good to have a check in build_holds_queue for the RealTimeHoldsQueue syspref and not run the job if the preference is enabled. There might be times when we'd want to force a run of this job without changing the syspref. To that end we would also want a flag for this job so that system administrators could force the job from the command line if required, overriding this limitation. Test Plan: 1) Apply this patch 2) Try run misc/cronjobs/holds/build_holds_queue.pl with the -h/--help and -m/--man options 3) Disable RealTimeHoldsQueue 4) Run with no options, should succeed 5) Enable RealTimeHoldsQueue 6) Run with no options, should display a message and not rebuild the holds queue 7) Run again with the -f/--force option, should succeed Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Bug 31995: (QA follow-up) Add 'system preference' to help text We often get asked where something can be found in setting, adding the hint that RealTimeHoldsQueue is a system preference is hopefully helpful here. Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
parent
8149c3d8a3
commit
cb936bd2e4
|
|
@ -6,14 +6,75 @@
|
|||
# FIXME: add command-line options for verbosity and summary
|
||||
# FIXME: expand perldoc, explain intended logic
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Modern::Perl;
|
||||
|
||||
use Koha::Script -cron;
|
||||
use Getopt::Long qw( GetOptions );
|
||||
use Pod::Usage qw( pod2usage );
|
||||
|
||||
use C4::Context;
|
||||
use C4::HoldsQueue qw(CreateQueue);
|
||||
use C4::Log qw( cronlogaction );
|
||||
use Koha::Script -cron;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
build_holds_queue.pl - Rebuild the holds queue
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
build_holds_queue.pl [-f]
|
||||
|
||||
Options:
|
||||
-h --help Brief help message
|
||||
-m --man Full documentation
|
||||
-f --force Run holds queue builder even if RealTimeHoldsQueue is enabled
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 8
|
||||
|
||||
=item B<--help>
|
||||
|
||||
Print a brief help message and exits.
|
||||
|
||||
=item B<--man>
|
||||
|
||||
Prints the manual page and exits.
|
||||
|
||||
=item B<--force>
|
||||
|
||||
Allows this script to rebuild the entire holds queue even if the RealTimeHoldsQueue system preference is enabled.
|
||||
|
||||
=back
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This script builds or rebuilds the entire holds queue.
|
||||
|
||||
=cut
|
||||
|
||||
my $help = 0;
|
||||
my $man = 0;
|
||||
my $force = 0;
|
||||
|
||||
my $command_line_options = join( " ", @ARGV );
|
||||
|
||||
GetOptions(
|
||||
'h|help' => \$help,
|
||||
'm|man' => \$man,
|
||||
'f|force' => \$force,
|
||||
);
|
||||
pod2usage(1) if $help;
|
||||
pod2usage( -exitval => 0, -verbose => 2 ) if $man;
|
||||
|
||||
my $rthq = C4::Context->preference('RealTimeHoldsQueue');
|
||||
|
||||
if ( $rthq && !$force ) {
|
||||
say "RealTimeHoldsQueue system preference is enabled, holds queue not built.";
|
||||
say "Use --force to force building the holds queue.";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
cronlogaction();
|
||||
|
||||
CreateQueue();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue