[12.x] Pause a queue for given seconds #57917
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR #57800 added the
QueueManager@pause()method to allow pausing a given queue.This method pauses the queue indefinitely by using a cache's store
forever()method.As such a queue can only be resumed by calling the
QueueManager@resume()method added in the same PR.When consuming an external API with rate limiting, one can get a
429response when the rate limit is surpassed.Often times this response is accompanied by the
Retry-Afterheader that gives the number of seconds to wait before retrying.Currently, one would need to keep track of those seconds to manually pause a queue (when a
429response is received) and manually resume a queue (when the timeout is expired).This PR
QueueManager@pauseFor()method that allows passing the number of seconds a queue should be paused.$secondsargument.