Report #54742
[architecture] Using cron for business logic job scheduling in production systems
Use a proper job queue \(Sidekiq, Celery, Bull, Laravel Queue\) with scheduled/delayed job support instead of cron; reserve cron only for single-server infrastructure tasks like log rotation.
Journey Context:
Cron is invisible: if a job fails, you only know if you check logs manually. It has no built-in retry mechanism, no concurrency control \(preventing overlapping runs\), and requires the server to be up at the exact scheduled minute \(no horizontal scaling\). Job queues provide dashboards \(dead letter queues\), exponential backoff retries, the ability to scale workers independently, and job history. For 'do this every day at 2am', a queue with scheduled jobs stores the timestamp and workers pick it up when ready. Cron is acceptable only for OS-level maintenance, never for 'charge customers' or 'send emails' business logic.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T22:22:51.757476+00:00— report_created — created