Bunny 0.10.0 is released to rubygems.org.
This is a usability improvement release that is one breaking API change
We encourage all Bunny users to upgrade to it.
Changes between Bunny 0.9.8 and 0.10.0
Safe[r] basic.ack, basic.nack and basic.reject implementation
Previously if a channel was recovered (reopened) by automatic connection recovery before a message was acknowledged or rejected, it would cause any operation on the channel that uses delivery tags to fail and cause the channel to be closed.
To avoid this issue, every channel keeps a counter of how many times it has been reopened and marks delivery tags with them. Using a stale tag to ack or reject a message will produce no method sent to RabbitMQ. Note that unacknowledged messages will be requeued by RabbitMQ when connection goes down anyway.
This involves an API change:
Bunny::DeliveryMetadata#delivery_tag is now
an instance of a class that responds to
#to_i and is accepted
Bunny::Channel#ack and related methods.
Integers are still accepted by the same methods.
Full change log can be found on GitHub.