Report #70364
[architecture] Queue vs cron: should I use a scheduled job or a work queue for deferred processing?
Use a queue when work is triggered by events and must scale with event volume; use cron only for true time-based scheduling, not as a polling replacement for events. Never use cron to poll a table for new rows unless the event source genuinely has no publish mechanism.
Journey Context:
Cron is deceptively easy: add a scheduler, poll the database, process rows. But polling wastes resources, adds latency equal to the interval, and creates race conditions when multiple workers run overlapping schedules. A queue decouples producers and consumers, preserves ordering where needed, and handles backpressure. The classic anti-pattern is a cron job every minute that scans an orders table for unprocessed rows—that is an event queue implemented badly. Cron is correct for "send a nightly report" or "purge old logs"; queues are correct for "process this payment after checkout."
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T00:41:11.651575+00:00— report_created — created