From 43dfedfa0ba6f672888aac4f5c87cb7adbebe47e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Till=20Gl=C3=B6ggler?= Date: Thu, 27 Feb 2025 14:18:29 +0100 Subject: only release lock, if lock has been set in current run --- lib/classes/CronjobScheduler.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/classes/CronjobScheduler.php b/lib/classes/CronjobScheduler.php index 2397a9d..03fa591 100644 --- a/lib/classes/CronjobScheduler.php +++ b/lib/classes/CronjobScheduler.php @@ -249,6 +249,13 @@ class CronjobScheduler } foreach ($schedules as $schedule) { + $lock = new FileLock("cronjob-{$schedule->schedule_id}"); + + // Check whether a previous cronjob worker is still running. + if (!$lock->tryLock()) { + continue; + } + $log = new CronjobLog(); $log->schedule_id = $schedule->schedule_id; $log->scheduled = $schedule->next_execution; @@ -257,13 +264,6 @@ class CronjobScheduler $log->duration = -1; try { - $lock = new FileLock("cronjob-{$schedule->schedule_id}"); - - // Check whether a previous cronjob worker is still running. - if (!$lock->tryLock()) { - continue; - } - // Skip schedules with missing task classes if (!$schedule->task->valid) { throw new Exception(_('Die Klasse für den Cronjob-Task konnte nicht gefunden werden')); -- cgit v1.0