Use thread queue delivery method for Resque, when it's safe to do so #629
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.
Goal
Our thread queue delivery relies on an
at_exit
hook to flush the queue before the thread exits. Unfortunately this doesn't work with Resque as it does not runon_exit
hooks by default. There is arun_at_exit_hooks
setting, which can be used to enableon_exit
hooks and so we can safely use thread queue delivery when this is enabledRelated to #593
Changeset
run_at_exit_hooks
is enabled and, if so, use thread queue delivery (otherwise stick with synchronous)run_at_exit_hooks
Testing
I've manually tested that delivery succeeds with thread queue delivery and
on_exit
hooks (and that it fails withon_exit
hooks disabled) and there's a new Maze Runner test to ensure this doesn't regress