Description
add_job in app/scheduler.py sets neither misfire_grace_time nor coalesce. APScheduler's default grace period is 1 second: if the host was asleep at the scheduled time, or the previous run overran, the job is dropped with only an internal APScheduler warning - nothing in deleterr's own logs or notifications.
Failure Scenario
A weekly cleanup scheduled for 3 AM on a NAS that sleeps overnight is skipped every single week. The user believes cleanup is happening; disk usage says otherwise. Nothing ever surfaces the misses.
Proposed Fix
Description
add_jobinapp/scheduler.pysets neithermisfire_grace_timenorcoalesce. APScheduler's default grace period is 1 second: if the host was asleep at the scheduled time, or the previous run overran, the job is dropped with only an internal APScheduler warning - nothing in deleterr's own logs or notifications.Failure Scenario
A weekly cleanup scheduled for 3 AM on a NAS that sleeps overnight is skipped every single week. The user believes cleanup is happening; disk usage says otherwise. Nothing ever surfaces the misses.
Proposed Fix
misfire_grace_time(e.g. several hours) andcoalesce=Trueso a missed run fires once when the scheduler wakesEVENT_JOB_MISSEDlistener that logs through deleterr's logger (and notifies, once scheduler failures notify - see Crashed scheduled runs are reported as successful, with no notification #293)