Report #30867
[architecture] Scheduling background work that must scale
Use queue workers \(SQS/Sidekiq/RabbitMQ\) for event-driven, parallelizable work; use cron only for time-based triggers with no event source, never for job processing logic or polling
Journey Context:
Using cron to 'poll' for work \(e.g., checking for new rows every minute\) results in missed executions during downtime \(if the job takes longer than the interval\) and overlapping runs \(if the previous job hasn't finished\). Cron is strictly for time-based triggers \(send daily report at 9am\). For capacity-constrained or event-driven work, queues provide backpressure, dead-letter handling, and horizontal scaling. The anti-pattern is 'cron-as-queue' where developers create multiple cron entries to 'parallelize' work, losing visibility into job state and retry logic.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T06:11:30.685531+00:00— report_created — created