Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Scheduler Laravel Package

symfony/scheduler

Symfony Scheduler component adds cron-like task scheduling powered by Symfony Messenger. Define recurring or one-off jobs, route them through transports and workers, and run tasks reliably within Symfony apps with first-class framework integration.

View on GitHub
Deep Wiki
Context7

The Symfony Scheduler component adds first-class task scheduling to your applications by leveraging Symfony Messenger. Define recurring jobs and dispatch them as messages, keeping execution decoupled, scalable, and compatible with your existing transport/worker setup.

Designed to integrate cleanly with the Symfony ecosystem, it helps you run periodic workloads reliably while keeping scheduling configuration clear and maintainable.

  • Schedule recurring tasks and dispatch them via Messenger
  • Works with Messenger transports and workers for scalable execution
  • Centralized, declarative configuration of schedules and triggers
  • Fits naturally into Symfony apps and infrastructure patterns
  • Supports clean separation between scheduling and job handling
Frequently asked questions about Scheduler
Can I use Symfony Scheduler in Laravel instead of Laravel’s built-in scheduler?
No, Symfony Scheduler is designed for Symfony Messenger and won’t integrate cleanly with Laravel’s queue system. Laravel’s `schedule:run` and queue workers already provide equivalent functionality without external dependencies. Forcing Symfony’s layer would require custom adapters, increasing complexity and maintenance burden.
What’s the difference between Symfony Scheduler and Laravel’s scheduler?
Symfony Scheduler relies on Symfony’s Messenger component and PHP attributes (#[AsCronTask]) for scheduling, while Laravel uses method chaining (e.g., `Schedule::call()`). Laravel’s scheduler is optimized for its ecosystem, including Horizon for monitoring, while Symfony’s is tightly coupled with Symfony’s DependencyInjection and Console components.
Will Symfony Scheduler work with Laravel’s queue drivers (Redis, database, etc.)?
No, Symfony Scheduler abstracts transports via Messenger, but Laravel’s queue drivers (e.g., Redis, database) are not natively supported. You’d need to build custom adapters to bridge Symfony’s transport layer with Laravel’s queues, which adds unnecessary complexity and technical debt.
Does Symfony Scheduler support one-off jobs or only recurring tasks?
Symfony Scheduler supports both recurring and one-off jobs via Messenger messages, but Laravel’s scheduler already handles this natively with `Schedule::call()` and `Schedule::command()`. Laravel’s approach is more idiomatic and doesn’t require additional infrastructure.
How would I integrate Symfony Scheduler into a Laravel project?
Integration would require custom adapters to bridge Symfony’s `ScheduleProviderInterface` with Laravel’s `Schedule` class, as well as service container bridging, CLI command overrides, and event listener mappings. This is high-effort, low-ROI work with no native Laravel ecosystem support (e.g., Horizon, Nova).
What PHP and Laravel versions does Symfony Scheduler support?
Symfony Scheduler (Symfony 8.x) requires PHP 8.4+, but Laravel 10/11 max at PHP 8.3. You’d need to either downgrade Symfony or upgrade PHP, introducing compatibility risks. Laravel’s scheduler works seamlessly within its supported PHP versions without version conflicts.
Are there performance or scalability benefits to using Symfony Scheduler in Laravel?
No, Symfony Scheduler doesn’t offer performance or scalability advantages for Laravel. Laravel’s scheduler and queue workers are already optimized for Laravel’s infrastructure (e.g., database queues, Redis, beanstalkd). Symfony’s Messenger layer adds unnecessary overhead without tangible benefits.
Can I use Symfony Scheduler for complex scheduling logic that Laravel’s scheduler lacks?
Laravel’s scheduler already supports dynamic schedules via closures, time zones, and conditional logic. Symfony’s `ScheduleProviderInterface` doesn’t provide features Laravel’s scheduler lacks. If you need advanced scheduling, consider extending Laravel’s `Schedule` class instead of introducing Symfony dependencies.
What are the maintenance risks of using Symfony Scheduler in Laravel?
High. Custom adapters would need ongoing updates for both Symfony and Laravel releases, and Symfony’s Messenger component is not designed for Laravel’s ecosystem. Breaking changes in Symfony could break your Laravel app, requiring manual fixes. Laravel’s native tools are actively maintained and optimized for Laravel.
Are there any Laravel packages that provide Symfony Scheduler-like functionality without Symfony dependencies?
Yes, Laravel’s built-in scheduler (`schedule:run`) combined with packages like **spatie/scheduler** or **laravel-horizon** provide equivalent or superior functionality. These packages are Laravel-native, well-tested, and integrate seamlessly with Laravel’s queue system, monitoring tools, and CLI commands.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport