Merge pull request #10922 from appwrite/copilot/fix-delayed-executions-trigger

Fix: Prevent job loss on container shutdown for delayed executions
This commit is contained in:
Steven Nguyen 2025-12-09 10:26:20 -08:00 committed by GitHub
commit 6c1cbfddea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -63,7 +63,7 @@ class ScheduleExecutions extends ScheduleBase
$this->updateProjectAccess($schedule['project'], $dbForPlatform);
\go(function () use ($queueForFunctions, $schedule, $scheduledAt, $delay, $data) {
\go(function () use ($queueForFunctions, $schedule, $scheduledAt, $delay, $data, $dbForPlatform) {
if ($delay > 0) {
Co::sleep($delay);
}
@ -81,15 +81,14 @@ class ScheduleExecutions extends ScheduleBase
->setUserId($data['userId'] ?? '')
->trigger();
$dbForPlatform->deleteDocument(
'schedules',
$schedule['$id'],
);
$this->recordEnqueueDelay($scheduledAt);
unset($this->schedules[$schedule['$sequence']]);
});
$dbForPlatform->deleteDocument(
'schedules',
$schedule['$id'],
);
unset($this->schedules[$schedule['$sequence']]);
}
}
}