symfony/scheduler
Symfony Scheduler Component lets you define recurring and one-off tasks and run them via Symfony Messenger. Supports cron-like schedules, delays, and integration with transports and workers. See docs for configuration, commands, and usage.
Schedule::call() or Schedule::command() for time-zone-aware, dependency-based schedules without Symfony’s ScheduleProviderInterface.php artisan schedule:run for cron-like tasks with dynamic schedules (e.g., Schedule::job(new ProcessPayments())->everyFiveMinutes()).AfterCommit).Schedule::call([MyService::class, 'process'])).Adopt only if:
#[AsCronTask] or #[AsFrequencyTask] attributes for declarative scheduling.ScheduleProviderInterface for dynamic, runtime-generated schedules.Avoid if:
telescope:record).Alternatives for Laravel:
Artisan::schedule() + php artisan schedule:run for cron-like tasks, paired with queues for async execution.spatie/laravel-schedule-monitor: Add monitoring to Laravel’s scheduler.laravel-horizon: Real-time queue monitoring and job management.laravel-backup: Schedule backups natively without external tools.shouldQueue() and delay(), or extend Laravel’s Schedule class for dynamic logic.For Executives: "Symfony Scheduler is designed for Symfony applications and introduces unnecessary complexity for Laravel. Adopting it would require custom integration work to bridge Symfony’s Messenger system with Laravel’s queues, adding technical debt without clear business value. Laravel’s native scheduler—paired with Horizon for monitoring—is a more scalable, cost-effective solution that leverages our existing ecosystem. Introducing Symfony Scheduler would divert resources from core product development and increase maintenance overhead."
For Engineering Teams: *"Symfony Scheduler is not a drop-in solution for Laravel. Here’s why we should avoid it:
schedule:run and Symfony’s scheduler:consume would double operational complexity and introduce inconsistencies.Instead, use Laravel’s scheduler + queues for async tasks and Horizon for monitoring. This approach is simpler, more performant, and fully supported by the Laravel ecosystem."*
For Developers: *"Symfony Scheduler is overkill for Laravel and introduces unnecessary complexity. Here’s why:
Schedule::job(), Schedule::command(), or Horizon.app/Console/Kernel.php and run with php artisan schedule:run.For Symfony projects, this package is a great fit. For Laravel, it’s a non-starter."*
How can I help you explore Laravel packages today?