Worker startup scan
// On boot, ask task store for interrupted tasks
List stale = taskStore.findStale(Duration.ofMinutes(5));
for (Task t : stale) {
runtime.resume(t);
} Advertisement
What counts as stale
Task in RUNNING state with a heartbeat older than N minutes. Live workers heartbeat every 30s.
Advertisement
Avoiding double-execution
Grabbing a stale task requires SKIP LOCKED + status transition to RESUMING. Only one worker wins.