- What does the dusterio/laravel-aws-worker package do?
- It lets a Laravel or Lumen application run queue workers inside an AWS Elastic Beanstalk worker tier instead of on dedicated worker servers. The package exposes an HTTP endpoint that receives SQS messages delivered by the Elastic Beanstalk SQS daemon and dispatches each message payload as a Laravel job. As of v2.0.00 it also delegates scheduled task execution to Laravel's native schedule:run command rather than maintaining its own scheduler implementation.
- How do I install dusterio/laravel-aws-worker in a Laravel application?
- Install it with Composer using composer require dusterio/laravel-aws-worker; Laravel's package auto-discovery registers the service provider for you. Then configure an SQS queue connection and the worker tier environment so the Elastic Beanstalk daemon POSTs messages to the package's endpoint. Always pin a version constraint and review the release notes, since the 2.0.00 major release changes scheduler behavior.
- Does this package work with Lumen?
- Yes, the package description explicitly covers Lumen as well as Laravel. Because Lumen does not use package auto-discovery in the same way, you will need to register the service provider manually in bootstrap/app.php. Confirm the provider and endpoint registration against the README for your pinned version before deploying.
- Which Laravel and PHP versions does version 2.0.00 support?
- The v2.0.00 release note only warns that older Laravel compatibility may be affected, and it does not publish a definitive Laravel or PHP support matrix. Treat that as an open question and test your exact Laravel and PHP minor combination in a staging Elastic Beanstalk environment before upgrading. If you need certainty, pin ^1.0 until a support matrix is published.
- How does scheduled task execution work in v2.0.00?
- Version 2.0.00 removes the package's bespoke scheduling mechanism behind the /worker/schedule entry point and delegates to Laravel's native schedule:run command. That means cron expression parsing, withoutOverlapping, onOneServer, timezone handling and background execution semantics now come from the framework rather than from the package. The URL surface is preserved, but the contract behind it has materially changed.
- Will my existing scheduled tasks keep running after upgrading to v2.0.00?
- It depends on how those tasks were registered. Tasks defined through the framework's console kernel or routes/console.php are visible to schedule:run and should continue to work, but tasks registered through the package's own scheduler configuration or DSL are not automatically bridged. In that case the scheduler can start cleanly, report healthy, and silently execute nothing, so audit your scheduled definitions before upgrading.
- Do I still need to run php artisan queue:work on a separate server?
- With this package the intent is that you do not, because the Elastic Beanstalk worker tier's SQS daemon feeds messages to your application's HTTP endpoint, which dispatches them as jobs in-process. You still need to configure the queue connection, the SQS queue and the daemon URL correctly. Keep a fallback plan, such as a small dedicated worker, in case messages exceed the endpoint's timeout or your jobs are long-running.
- Can multiple Elastic Beanstalk worker instances cause duplicate job execution?
- Yes, this is a real risk, especially for scheduled work. Native schedule:run assumes it is invoked once per minute on a single schedule, so if /worker/schedule is called from multiple worker nodes, delegated tasks can multiply. Configure onOneServer with a shared cache lock, or route the scheduler call to a single instance, and verify the behavior in staging.
- How do I test the dusterio/laravel-aws-worker endpoint locally?
- Run your application locally and send a POST request that mimics the SQS daemon payload to the worker endpoint, then confirm the job is dispatched and handled. Also exercise your scheduled tasks directly with php artisan schedule:run to prove they are visible to the framework scheduler after any v2 upgrade. Check logs for dispatched versus missing jobs, since the main v2 failure mode is silent non-execution rather than an error.
- What are the alternatives to dusterio/laravel-aws-worker?
- Common alternatives include running php artisan queue:work on a dedicated EC2 or ECS service, using Laravel Horizon with Redis, or using a managed platform such as Laravel Vapor. A plain Elastic Beanstalk worker tier with your own worker script is also viable if you want fewer dependencies. This package is most useful when you already run on Elastic Beanstalk worker tiers and want SQS messages dispatched as Laravel jobs without extra servers.