Skip to content
Français

RunSchedulesOptions

import type { RunSchedulesOptions } from "@elie-laloum/outpost";
  • queueRequired
    TaskQueue
    Queue receiving one trigger job per slot; share it between scheduler replicas so they converge on the same job.
  • schedulesRequired
    readonly TriggerSchedule[]
    At least one schedule, each with a unique name.
  • signalRequired
    AbortSignal
    Stops every schedule; runSchedules() then resolves.
  • maxLateMsOptional
    number | undefined
    Maximum delay after a slot for it to still be published, including at startup; defaults to 60000. Only the latest slot within this window is published; a negative or non-integer value rejects.
  • onErrorOptional
    ((error: unknown, failure: ScheduleFailure) => void) | undefined
    Receives each publication failure with its schedule and slot, and scheduling continues; without it the first failure stops every schedule and rejects runSchedules(). Errors thrown by the callback are ignored.
export interface RunSchedulesOptions {
  readonly queue: TaskQueue;
  readonly schedules: readonly TriggerSchedule[];
  readonly signal: AbortSignal;
  /** Latest publication accepted for a slot, including after a restart; defaults to 60 seconds. */
  readonly maxLateMs?: number;
  /** Receives publication failures; without it, the first failure rejects `runSchedules()`. */
  readonly onError?: (error: unknown, failure: ScheduleFailure) => void;
}