- How do I install yuntian001/multi-process-queue in a Laravel application?
- Install it with Composer using composer require yuntian001/multi-process-queue, then check the README for any service provider or config publishing step. The package requires the Swoole PHP extension, so confirm ext-swoole is compiled into your PHP runtime before installing. Because the last tagged release was in January 2023, pin the package version together with your PHP and Laravel versions rather than pulling the latest constraint.
- Does multi-process-queue support Laravel 10 and Laravel 11?
- Laravel 10 and 11 support is not documented and must be proven, not assumed, since the package's last release was in January 2023. Run a spike in a container on your target PHP version, verify service provider registration and config caching, then dispatch a real job and confirm timeout and retry behaviour. If the integration breaks, treat it as a fork-and-patch decision rather than a blocker for your whole queue strategy.
- Do I need the Swoole extension to use this package?
- Yes. The package is a Swoole-based multi-process queue system and depends on ext-swoole for its coroutine support and worker processes. That rules out shared hosting, serverless platforms, and PHP-FPM-only deployment targets where Swoole cannot be installed or kept alive. You need Linux VMs or containers where you control the PHP build and the worker lifecycle.
- Is this a drop-in replacement for Laravel's Redis, SQS, or database queue driver?
- It should not be treated as a proven drop-in replacement for Laravel's mature queue stack. The key question is whether the package implements Laravel's Queue contract or is a separate Swoole job runner with its own API, and that determines whether your existing dispatch calls and job classes carry over unchanged. Validate this in a proof of concept before planning any migration, and avoid a big-bang switch away from your current driver.
- Where are queued jobs persisted: memory, Redis, or the database?
- Job persistence depends on how the package is wired up, and this is one of the first things to confirm in a spike. In-memory Swoole queues are fast but lose pending jobs when a worker or host dies, while Redis or database backing gives you durability at the cost of latency. Choose a bounded, low-risk job type first and verify what actually survives a hard restart.
- How are retries, timeouts, and failed jobs configured?
- The package advertises timeout control and failure retry, so the essentials exist, but backoff strategy, max attempts, and failed-job storage need to be verified against your requirements. Check whether failed jobs are persisted somewhere you can inspect and replay, or whether they are simply logged and discarded. If you need dead-letter handling and dashboards, plan to build that layer yourself or keep Laravel's failed_jobs table in the loop.
- What happens if a worker process crashes in the middle of a job?
- With forked worker processes, a crash can leave a job in an ambiguous state, so the delivery guarantee matters: at-least-once means duplicates are possible, at-most-once means work can be lost. The package documentation does not make this contract explicit, so design your jobs to be idempotent regardless. Also test timeout cancellation, because a job killed mid-write can leave partial state behind.
- Can I run this in production, and what process supervision do I need?
- It can run in production for a narrow, well-understood queue, but not as your primary queue on day one. Use Supervisor or systemd to keep the master process alive, confirm graceful shutdown so in-flight jobs finish, and enable worker recycling to control memory growth in long-running processes. Canary a single queue behind a feature flag and keep your existing Laravel queue as a fallback.
- Is yuntian001/multi-process-queue still maintained?
- Public signals are thin: roughly 93 GitHub stars and a last release in January 2023, which points to vendor and maintainer risk. That does not make the package unusable, but it means you should assume you may have to fork it for Laravel or Swoole upgrades. Check the license and the open issue activity, and budget time for owning patches rather than waiting on upstream.
- How does its performance compare with Laravel's default queue worker?
- The package claims millisecond-level latency and low resource overhead through parallel Swoole worker processes, which is plausible for high-volume, latency-sensitive jobs like webhooks, notifications, and event fan-out. The honest comparison is a side-by-side benchmark on your own hardware: run the same job class through both systems and measure throughput, p95 latency, memory, failure rate, and restart behaviour. Only move traffic once the package shows stable retries and observable failure handling.