Handle and re-raise bunny exceptions during work #35
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.
Custom workers which perform bunny related operations inside the
workfunction through thehandlercan find themselves getting stuck when rabbitmq is restarted.This can happen because the bunny exception raised by the
workfunction is caught by the catch all rescue present inprocess_workfunction - and this does not let the exception bubble up leaving bunny in broken state and not receiving any more jobs.This PR allows Bunny::Exception to be re-raised so that the worker does not get stuck.
My use case involves allowing the ActiveJob to configure whether ack would be sent before or after the job (so that the Job can decide on at lease once or at most once paradigm). The jobs which were sending ack early through the work function would raise this exception and the worker would get stuck.