Documentation

Scheduling & Delayed Jobs

Run jobs later for reminders, follow-ups, retry windows, cleanup, and recurring backend work.

Search Docs

Durable Jobs

Scheduling & Delayed Jobs

Live

Run jobs later for reminders, follow-ups, retry windows, cleanup, and recurring backend work.

Goal

Schedule backend work without keeping a process alive or relying on request timing.

Current status

Live

This area is documented as current, user-reliable behavior.

Workflow

  1. 1Pass scheduledAt when a job should run later.
  2. 2Use idempotency keys so rescheduling attempts do not duplicate work.
  3. 3Use recurring schedules for repeated platform tasks when your StackShift plan supports them.

Run later

Trial reminder

ts
await stackshift.queue('notifications').enqueue(
  'sendTrialEndingReminder',
  { customerId: 'cus_123' },
  {
    scheduledAt: '2026-05-12T10:00:00.000Z',
    idempotencyKey: 'trial-ending:cus_123',
  }
)

Recurring jobs

  • Use recurring jobs for daily cleanup, billing sync, report generation, and periodic reconciliation.
  • Keep the job body idempotent because recurring jobs often touch external systems.
  • Use observability to inspect the latest run and previous attempts.

Expected result

Delayed work runs at the intended time and remains visible before execution.