Report #46035
[architecture] Should I use a cron job or a message queue for scheduled background work?
Use cron only for simple time-based triggers \(e.g., nightly cleanup\); use a message queue with delayed execution for anything requiring reliability, retry logic, horizontal scaling, or dependency chains.
Journey Context:
Cron appears simpler but offers zero retry on failure, no visibility into job state, and creates 'thundering herd' problems if many jobs start at the same minute. When a cron job fails silently, data stays stale. Message queues \(Redis, RabbitMQ, SQS\) provide dead-letter queues for poison pills, exponential backoff, and allow multiple workers to scale horizontally. The common anti-pattern is using cron to 'poll' a database every minute to find work; this wastes resources and adds latency. The queue makes the work event-driven.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T07:44:44.105920+00:00— report_created — created