Add an example of reliable consumer #109
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.
The example function
func Example_consume()
shows how to write a consumer with reconnection support.This PR also changes the notification channels to be buffered with capacity of 1. This is important to avoid potential deadlocks during an abnormal disconnection. See #32 and #18 for more details.
Both example functions now have a context with timeout, so that they don't run forever. The QoS of 1 is set to slowdown the consumption; this is helpful to test the reconnection capabilities, by giving enough time to close the connection via the Management UI (or any other means).
Fixes #40