TL;DR
Bunny 0.9.0.pre6 is released to rubygems.org.
This release includes one major feature and a few bug fixes. It is 100% backwards compatible.
Highlights
The major feature is automatic network failure recovery. This includes recovery of exchanges, queues, bindings and consumers that were declared/added on the recovered Bunny connection.
In addition, documentation guides on error handling and recovery is now up online.
Change Log
Automatic Network Failure Recovery
Automatic Network Failure Recovery is a new Bunny feature that was earlier impemented and vetted out in amqp gem. What it does is, when a network activity loop detects an issue, it will try to periodically recover [first TCP, then] AMQP 0.9.1 connection, reopen all channels, recover all exchanges, queues, bindings and consumers on those channels (to be clear: this only includes entities and consumers added via Bunny).
Publishers and consumers will continue operating shortly after the network connection recovers.
Learn more in the Error Handling and Recovery documentation guide.
Confirms Listeners
Bunny now supports listeners (callbacks) on
1 2 3 |
|
Contributed by Greg Brockman.
Publisher Confirms Improvements
Publisher confirms implementation now uses non-strict equality (<=
) for
cases when multiple messages are confirmed by RabbitMQ at once.
Bunny::Channel#unconfirmed_set
is now part of the public API that lets
developers access unconfirmed delivery tags to perform retries and such.
Contributed by Greg Brockman.
Publisher Confirms Concurrency Fix
Bunny::Channel#wait_for_confirms
will now correctly block the calling
thread until all pending confirms are received.
Change log is available on GitHub.
Plans for 0.9.0 Final
There is still a few things we need to do before Bunny 0.9 can be declared complete:
- Make network failure recovery configurable
- Bring back TLS support
- Add logging
- API reference documentation
Chances are, the next release will be RC1.
Michael on behalf of the Ruby RabbitMQ Clients Team