In legacy versions of RaaS, the scheduler pre-calculates future scheduled jobs and stores them in the database with a status of created. When the RaaS service starts, the scheduler queries the database for all outstanding "futures" where the scheduled start time is in the past (start_time <= now).
Because these older versions lacked an age-validation mechanism, the scheduler queued and dispatched every missed job to background workers immediately upon startup, regardless of how much time had elapsed since the original scheduled start time.
This issue is resolved in RaaS version 8.17.x and higher through the implementation of a delay-threshold mechanism.
The updated scheduler now includes logic to automatically discard outdated jobs:
scheduler_max_job_delay_cycles (default: 100), is used in conjunction with the schedule_cycle (default: 10 seconds) to define a maximum allowable delay (approx. 16.6 minutes by default).skip_cutoff timestamp: skip_cutoff = now - (max_delay_cycles * schedule_cycle)start_time is compared against the skip_cutoff. If the job is older than the cutoff, it is marked as Skipped and logged as "outdated" instead of being dispatched for execution.If an upgrade is not immediately possible, use the following steps to prevent unexpected job execution after a planned outage:
schedule table of the RaaS PostgreSQL database to prevent them from firing.