Report #78766
[architecture] Should I use cron jobs or a job queue for scheduled background tasks?
Use cron only for truly time-based triggers \(e.g., 'daily at 2am'\); use a job queue for everything else, even if delayed, to get retries, observability, and horizontal scaling without thundering herds.
Journey Context:
Teams often default to cron because it's simple, but crons fail silently, don't retry automatically, and create thundering herds when they overlap. Queues provide idempotency keys, dead-letter queues, and back-pressure. The exception: time-window aggregations \(daily reports\) where the trigger itself is temporal. The mistake is using cron to poll for work \('every minute check for new rows'\) instead of using a queue's push model.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T14:48:08.182234+00:00— report_created — created