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 provides simple task scheduling built on Symfony Messenger. Define recurring or delayed jobs and run them via workers, integrating cleanly with your existing messaging setup. Links to docs, contributing, and issue tracking in the main Symfony repo.

View on GitHub
Deep Wiki
Context7

Provides scheduling through Symfony Messenger

Frequently asked questions about Scheduler
Can Symfony Scheduler replace Laravel’s built-in `artisan schedule:run` for recurring jobs?
No, Symfony Scheduler isn’t a drop-in replacement. It requires rewriting tasks to use Symfony’s `#[AsCronTask]` or `ScheduleProviderInterface`, breaking Laravel’s native `Schedule::call()` or `Schedule::job()` syntax. You’d also need to configure Symfony Messenger separately, which lacks Laravel’s Horizon/Nova integrations.
What Laravel versions does Symfony Scheduler officially support?
Symfony Scheduler doesn’t natively support Laravel—it’s designed for Symfony’s Messenger component. While you *could* use it with Laravel, there’s no version-specific documentation. Compatibility depends on your Laravel and Symfony Messenger versions, which may conflict with Laravel’s existing Symfony components (e.g., HTTP client, mailer).
How do I migrate existing Laravel scheduled tasks to Symfony Scheduler?
Refactor tasks to implement `ScheduleProviderInterface` or annotate them with `#[AsCronTask]`. Replace `artisan schedule:run` with Symfony’s `scheduler:run` command, but ensure Messenger workers are running. State management differs—Laravel uses cron timing, while Symfony Scheduler relies on checkpoints in cache/database, risking missed/duplicate jobs during transition.
Does Symfony Scheduler work with Laravel Horizon for monitoring?
No, Horizon won’t monitor Symfony Scheduler jobs. You’d need custom logging or Telescope integration, as Symfony’s scheduler uses Messenger workers, not Laravel’s queue system. This means no built-in job retries, throttling, or failure alerts via Horizon’s UI.
Can I use Symfony Scheduler alongside Laravel’s scheduler for hybrid setups?
Technically yes, but it’s not recommended. You’d run both `artisan schedule:run` (cron) and Symfony’s `scheduler:run` (Messenger workers), duplicating infrastructure. This increases complexity, resource usage, and debugging overhead without clear benefits for Laravel-specific use cases.
What are the performance implications of using Symfony Scheduler in Laravel?
Symfony Scheduler adds overhead by requiring Messenger consumers (separate processes from Laravel’s queue workers). Recurring tasks use checkpoints stored in cache/database, which may introduce latency compared to Laravel’s cron-based timing. Scaling requires managing additional worker processes, unlike Laravel’s single `schedule:run` command.
Are there Laravel-specific alternatives to Symfony Scheduler with better integration?
Yes, consider `spatie/scheduler` or Laravel’s native `artisan schedule:run`. These are optimized for Laravel’s ecosystem, offering Horizon/Nova/Forge support, time-zone-aware scheduling, and seamless dependency injection. Symfony Scheduler lacks these features and forces you to adopt Symfony’s Messenger ecosystem.
How does Symfony Scheduler handle time zones for scheduled tasks?
Symfony Scheduler doesn’t natively support Laravel’s time-zone-aware scheduling. You’d need to manually configure time zones in Messenger’s transport or task logic, unlike Laravel’s scheduler, which respects the app’s configured time zone globally. This adds complexity for internationalized applications.
Can I use Symfony Scheduler with Laravel Forge or Envoyer for cron management?
No, Forge/Envoyer manage Laravel’s `artisan schedule:run` via cron. Symfony Scheduler requires separate Messenger workers, which aren’t natively supported in Forge/Envoyer’s cron configurations. You’d need custom setup, losing Forge’s monitoring and Envoyer’s deployment integrations.
What’s the long-term maintenance risk of using Symfony Scheduler in Laravel?
High. Symfony and Laravel evolve independently—Symfony Scheduler may introduce breaking changes incompatible with Laravel’s scheduler or Horizon. You’d also depend on Symfony’s documentation and community, which may not address Laravel-specific issues. Dual maintenance (Laravel + Symfony) increases technical debt.
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.
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
ecotone/kafka
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata