halloverden/symfony-scheduled-task-bundle
A Symfony bundle for defining and running scheduled tasks using Symfony's scheduler and messenger components, with attribute-based task configuration and a clean integration into your existing Symfony application.
Architecture fit
bundles.php, depends on symfony/messenger, symfony/framework-bundle, and Symfony's DI container. None of those primitives exist in a Laravel runtime in a compatible form.app/Console/Kernel.php / routes/console.php scheduling (->everyMinute(), ->withoutOverlapping(), ->onOneServer(), ->runInBackground()) combined with dispatch(new SomeJob) onto any queue driver, plus Horizon for observability.Integration feasibility
symfony/messenger bridge). That is a substantial architectural commitment for a capability Laravel already ships.Technical risk
Key questions
Stack fit
Schedule::call() / Schedule::command() / invokable job class.dispatch(new TaskJob()) onto Redis/SQS/database queue.cronExpression support on schedule entries.->onOneServer() with a shared cache lock (Redis).->withoutOverlapping().Migration path
onOneServer), including failure/retry behaviour.Compatibility
symfony/messenger constraint against the consumer service. Unmaintained bundles frequently lag major-version bumps, which becomes a blocker at the next platform upgrade.Sequencing
Maintenance
routes/console.php, creating a second place engineers must check to answer "what runs on a schedule?" — a durable cognitive tax.Support
Scaling
onOneServer() + a shared cache lock. Confirm the cache driver supports atomic locks (Redis/Memcached/dynamodb) before relying on it.Failure modes
schedule:run).withoutOverlapping() and idempotent job design.onOneServer() and verifying the lock store is shared, not array/file.tries and backoff, and route to a failed-jobs store with an owner.Ramp-up
How can I help you explore Laravel packages today?