[pve-devel] [PATCH manager v2 1/3] fix #4026: add 'repeat-missed' option for jobs
Fabian Ebner
f.ebner at proxmox.com
Mon Jun 13 14:32:16 CEST 2022
Am 02.06.22 um 09:42 schrieb Dominik Csapak:
> diff --git a/PVE/API2/Backup.pm b/PVE/API2/Backup.pm
> index 5d36789a..ced48977 100644
> --- a/PVE/API2/Backup.pm
> +++ b/PVE/API2/Backup.pm
> @@ -180,6 +180,13 @@ __PACKAGE__->register_method({
> description => "Enable or disable the job.",
> default => '1',
> },
> + 'repeat-missed' => {
> + optional => 1,
> + type => 'boolean',
> + description => "If true, the job will be run as soon as possible if it was missed while".
> + " the scheduler was not running.",
Style nit: Line too long and continuation should be indented once more.
> + default => 0,
> + },
> comment => {
> optional => 1,
> type => 'string',
> @@ -381,6 +388,13 @@ __PACKAGE__->register_method({
> description => "Enable or disable the job.",
> default => '1',
> },
> + 'repeat-missed' => {
> + optional => 1,
> + type => 'boolean',
> + description => "If true, the job will be run as soon as possible if it was missed while".
> + " the scheduler was not running.",
Same here.
> + default => 0,
> + },
> comment => {
> optional => 1,
> type => 'string',
> diff --git a/PVE/Jobs.pm b/PVE/Jobs.pm
> index da648630..ac44df00 100644
> --- a/PVE/Jobs.pm
> +++ b/PVE/Jobs.pm
> @@ -209,6 +209,7 @@ sub get_last_runtime {
> }
>
> sub run_jobs {
> + my ($first_run) = @_;
Style nit: could use a blank line
> synchronize_job_states_with_config();
>
> my $jobs_cfg = cfs_read_file('jobs.cfg');
> @@ -228,6 +229,10 @@ sub run_jobs {
> next;
> }
>
> + # update last_run_time on the first run when 'repeat-missed' is 0, so that a missed job will not
What is last_run_time ;)?
Style nit: line too long.
> + # start immediately after boot
> + updated_job_schedule($id, $type) if $first_run && !$cfg->{'repeat-missed'};
Can we rename the function? updated_job_schedule() sounds like something
that's only called when the job schedule was updated (and the next patch
introduces yet another code path calling it).
> +
> next if defined($cfg->{enabled}) && !$cfg->{enabled}; # only schedule actually enabled jobs
>
> my $last_run = get_last_runtime($id, $type);
> diff --git a/PVE/Jobs/Plugin.pm b/PVE/Jobs/Plugin.pm
> index 6098360b..b8cbef1e 100644
> --- a/PVE/Jobs/Plugin.pm
> +++ b/PVE/Jobs/Plugin.pm
> @@ -39,6 +39,13 @@ my $defaultData = {
> description => "Description for the Job.",
> maxLength => 512,
> },
> + 'repeat-missed' => {
> + optional => 1,
> + type => 'boolean',
> + description => "If true, the job will be run as soon as possible if it was missed while".
Style nit: also one char too long.
> + " the scheduler was not running.",
> + default => 0,
Do we plan to change the behavior for replication jobs in the future
too? Otherwise, the documented default here will not apply to those.
> + },
> },
> };
>
More information about the pve-devel
mailing list