cboxdk/laravel-queue-autoscale
Laravel Queue Autoscale automatically adjusts the number of queue workers to match your workload, scaling up when queues back up and down when they're idle so jobs keep processing promptly while you avoid paying for idle workers.
Queue::extend() was invisible to the package's core logic. That is a quiet but real ceiling on the addressable market: teams that wrap SQS/Redis/Database to add prefixing, tenancy, encryption, or observability were getting wrong answers rather than no answers. v4.6.1 is the roadmap item that turns that from "unsupported, file an issue" into "supported, judged by what it extends."SyncQueue no longer appears as jobs no worker can run — i.e., phantom backlog that misleads capacity planning); autoscaling decisions on Redis/Database subclasses (previously treated as unable to report oldest-job age, causing false "no signal" or premature scaling); SLA/breach reporting (recovered queues no longer held as breached); and queue:autoscale:doctor SQS diagnostics — dotted queue names and missing SLA signal — firing for SQS subclasses instead of being silently skipped.queue:autoscale process. The manager now holds one resolved instance of each custom-driver connection open for the process lifetime. That is a coordination item for the rollout checklist and a thing to note for teams running many long-lived autoscaler processes against many custom connections.Consider it when:
Queue::extend() drivers. This is the release that makes the package usable for you; anything earlier should be considered unreliable in your environment.queue:autoscale:doctor) that respects your custom driver's characteristics.Look elsewhere when:
For executives: This is a correctness release for the autoscaler, and it closes a gap that limited who could use it. Customers running customized queue connections were previously getting wrong capacity signals — queues that looked busy but had no runnable work, or queues that looked unhealthy after they had already recovered. Those failure modes cost money in both directions: over-provisioned workers, and SLA breaches reported against healthy queues. There are no configuration changes and no API breakage; the upgrade cost is a coordinated restart of the autoscaler processes, which is a routine deployment step rather than a migration. It expands the set of customers we can credibly sell to, at patch-release risk.
For engineering: v4.6.1 resolves a connection's built-in queue family once per process and judges it by what it extends, rather than by driver name. Subclasses of BackgroundQueue, SyncQueue, DeferredQueue, NullQueue, SqsQueue, RedisQueue, and DatabaseQueue now behave as their parents across workload reporting, queue:autoscale:doctor, the engine, the cluster summary, and the console. Built-in drivers are untouched and are never resolved. Resolution failure (broker down, missing credentials) degrades to name-based judgement and is not retried until restart. New public surface: Support\QueueDriver::of(). Test suite validated against cboxdk/laravel-queue-metrics 3.5.1 (JobMetricsRepository::listJobs()); test-only, no runtime impact. Action item: add "restart all queue:autoscale processes" to the upgrade runbook, and be aware of one held connection instance per custom driver per process.
How can I help you explore Laravel packages today?