- How do I install laravelcollective/iron-queue in Laravel?
- Install it with composer require laravelcollective/iron-queue. On Laravel 5.5 and later the service provider is auto-discovered; on older versions add it to config/app.php and register the queue driver. Then add an ironmq connection block with project, token, host, queue, and retry_after values. Because the package targets old illuminate/* and Guzzle constraints, verify Composer resolves against your PHP, Laravel, and Guzzle versions before committing.
- Which Laravel versions does laravelcollective/iron-queue support?
- The package targets Laravel 5.x and Lumen from the PHP 7.x era. Its Composer constraints are built around illuminate/* 5.x and the iron-io/iron_mq SDK, so modern Laravel versions with Guzzle 7 or PHP 8 typically will not resolve without changes. Treat it as a fork-and-port project on Laravel 9 or newer, not a drop-in install.
- Is laravelcollective/iron-queue still maintained?
- No. The repository is archived, the last release was in October 2018, and there is no active maintainer handling compatibility or security updates. Any production use means you own the maintenance burden for both the driver and its archived IronMQ SDK. Pin it and vendor the source into a private repository if you must keep it running.
- How do I configure an IronMQ queue connection in Laravel?
- Add an ironmq entry to the connections array in config/queue.php using driver ironmq, plus project, token, host, queue, and retry_after keys. Set the default connection or dispatch explicitly with onConnection('ironmq'). The retry_after value must be tuned against IronMQ's reservation timeout to avoid duplicate job execution. Register the service provider manually on older Laravel versions or in Lumen's bootstrap/app.php.
- Why do my IronMQ queue jobs run twice in Laravel?
- Duplicate execution usually means retry_after is shorter than the maximum job runtime, so IronMQ reserves the job again while the first worker is still processing it. Tune retry_after above your longest expected job duration and keep it aligned with IronMQ's reservation timeout. Because this driver was written against Laravel 5.x internals, modern queue retry and visibility behavior may not map cleanly, so test duplicate-delivery scenarios explicitly.
- Does laravelcollective/iron-queue work with Laravel 8 or Laravel 9?
- No, not without modification. The package constraints target illuminate/* 5.x and the archived iron-io/iron_mq SDK, which commonly conflicts with Guzzle 7 and PHP 8 requirements in newer Laravel applications. You would need to fork the driver, update its constraints, and re-test queue semantics against the newer framework internals. That is a porting project rather than a supported installation.
- Can I use laravelcollective/iron-queue with Lumen?
- Yes. Register the package service provider manually in bootstrap/app.php and configure an ironmq queue connection with your IronMQ project, token, host, queue, and retry_after settings. Lumen uses the same Illuminate queue components, so jobs dispatch through the standard queue API. Confirm that your Lumen version still matches the old illuminate/* constraints before relying on it.
- Does laravelcollective/iron-queue support Horizon or job batching?
- No. The driver was written against Laravel 5.x queue internals and predates job batching, rate limiting, and Horizon integration. You will not get queue-depth dashboards, autoscaling signals, or per-queue wait-time metrics from Horizon. Any observability around IronMQ queue depth or wait time requires custom instrumentation against the IronMQ API or SDK.
- What are the alternatives to laravelcollective/iron-queue?
- The recommended alternative is to migrate to a queue backend Laravel supports natively, such as Redis, Amazon SQS, or the database driver. Those give you maintained drivers, modern queue features, and broader observability options. If IronMQ must remain in the stack, either vendor and fork this archived driver or call the iron-io/iron_mq SDK directly from a thin custom driver. There is no actively maintained IronMQ driver for modern Laravel.
- How do I test IronMQ queue jobs in Laravel?
- Use Queue::fake() in your feature tests to assert that jobs are dispatched without contacting IronMQ. For integration tests, point the ironmq connection at a dedicated test queue and keep retry_after low so tests do not wait on reservation timeouts. You can also mock the underlying iron-io/iron_mq SDK in unit tests to avoid network calls and credential dependency.