Ack only successful messages and expose ways to control nacks for users that want them #10
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.
Follows discussion in #2.
Changes:
Consumers created with
amqp_consume()
will now acknowledge messages only after the callback has run. Moreover, when a callback fails the message in question will be nacked instead. The newrequeue_on_error
parameter controls whether messages should be redelivered when callbacks error; by default it isFALSE
, in line with current behaviour.For complete control over when and how messages are nacked, one can use the new
amqp_nack()
function, which works likestop()
inside a message handler. This allows for complex acknowledgement behaviour for a consumer, which might e.g. be used in combination with a dead letter exchange.Includes tests and documentation updates.