Skip to content

[13.x] Add a global pause switch for queues - #61126

Merged
taylorotwell merged 9 commits into
laravel:13.xfrom
jackbayliss:13.x-queue-pause-all
Aug 11, 2026
Merged

[13.x] Add a global pause switch for queues#61126
taylorotwell merged 9 commits into
laravel:13.xfrom
jackbayliss:13.x-queue-pause-all

Conversation

@jackbayliss

@jackbayliss jackbayliss commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Right now, you can pause the scheduler (all of them) out right, but you cant do the same for queues without going into maintenance mode.

This means if you have 14 workers and even more queues, you have to pause each and every individual queue, they may change names with feature changes, which means it becomes a bit of a burden to maintain.

It gets even more technical if you used managed queues, which then means you need to think about the connections as well:
Queue::pause(Queue::getDefaultDriver(), 'hussle');

now becomes:
Queue::pause('cloud', 'hussle'); which means we have to maintain it and gate it between envs.

This PR is a pause switch for all connections and queues, meaning we can do php artisan queue:pause --all (resume works too) with get 2 new events, QueuesResumed and QueuesPaused

This is also useful during deployments.. as we can force pause all workers without tapping into the looping event and save the cache hits

One intentional note: if a queue was paused individually, resumeAll leaves it paused.. Idea being pause/resume and pauseAll/resumeAll are independent switches. This also avoids any B/C 🫡 (I made a note in the docblock to save future pain)

@github-actions

Copy link
Copy Markdown

Thanks for submitting a PR!

Note that draft PRs are not reviewed. If you would like a review, please mark your pull request as ready for review in the GitHub user interface.

Pull requests that are abandoned in draft may be closed due to inactivity.

@jackbayliss
jackbayliss marked this pull request as ready for review August 10, 2026 17:58
@taylorotwell
taylorotwell merged commit b3fe92e into laravel:13.x Aug 11, 2026
53 checks passed
@jackbayliss
jackbayliss deleted the 13.x-queue-pause-all branch August 11, 2026 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants