Libraries v5.0.0
    Preparing search index...

    Durable scheduling and production API. Workers have a separate lifecycle.

    Index
    lastError: unknown
    namespace: string
    • Fence cancellation; application authorization must happen before calling.

      Parameters

      • id: string

      Returns Promise<boolean>

    • Explicit bounded terminal-data cleanup. Workers/dispatcher also run this periodically.

      Parameters

      • limit: number = 100

      Returns Promise<number>

    • Accept a validated immediate/delayed job, or return its retained duplicate.

      Type Parameters

      Parameters

      • definition: D
      • input: InferType<D["input"]>
      • options: { idempotencyKey?: string; runAt?: Date } = {}

      Returns Promise<JobRun<InferType<D["output"]>>>

    • Replay then follow committed events; disconnecting does not cancel the job.

      Type Parameters

      Parameters

      • definition: D
      • id: string
      • options: { after?: number; signal?: AbortSignal } = {}

      Returns AsyncGenerator<JobEvent<InferType<D["progress"]>>>

    • Read a typed snapshot without leaking worker ownership credentials.

      Type Parameters

      Parameters

      • definition: D
      • id: string

      Returns Promise<JobRun<InferType<D["output"]>> | undefined>

    • Pause/resume future occurrences. Resume applies the configured missed policy.

      Parameters

      • id: string
      • paused: boolean = true

      Returns Promise<boolean>

    • Remove a recurring trigger, not its already accepted runs.

      Parameters

      • id: string

      Returns Promise<boolean>

    • Stop dispatching. Workers must be stopped separately before closing database pools.

      Returns Promise<void>

    • Upsert future recurrence; already accepted runs are never rewritten.

      Type Parameters

      Parameters

      • id: string
      • definition: D
      • input: InferType<D["input"]>
      • options: {
            missed?: "coalesce" | "skip" | "replay";
            overlap?: "skip" | "allow";
            schedule:
                | {
                    endsOn?: Date;
                    every: "minute";
                    interval?: number;
                    maxOccurences?: number;
                    maxOccurrences?: number;
                    skipFirst?: number;
                    startsOn?: Date;
                    timeZone?: string;
                }
                | {
                    endsOn?: Date;
                    every: "day";
                    hour?: number;
                    interval?: number;
                    maxOccurences?: number;
                    maxOccurrences?: number;
                    minute?: number;
                    skipFirst?: number;
                    startsOn?: Date;
                    timeZone?: string;
                }
                | {
                    dayOfWeek: number[];
                    endsOn?: Date;
                    every: "week";
                    hour?: number;
                    interval?: number;
                    maxOccurences?: number;
                    maxOccurrences?: number;
                    minute?: number;
                    skipFirst?: number;
                    startsOn?: Date;
                    timeZone?: string;
                }
                | {
                    day: number
                    | "last";
                    endsOn?: Date;
                    every: "month";
                    hour?: number;
                    interval?: number;
                    maxOccurences?: number;
                    maxOccurrences?: number;
                    minute?: number;
                    skipFirst?: number;
                    startsOn?: Date;
                    timeZone?: string;
                }
                | {
                    day: number
                    | "last";
                    endsOn?: Date;
                    every: "year";
                    hour?: number;
                    interval?: number;
                    maxOccurences?: number;
                    maxOccurrences?: number;
                    minute?: number;
                    month: number;
                    skipFirst?: number;
                    startsOn?: Date;
                    timeZone?: string;
                };
        }

      Returns Promise<ScheduleRecord>