Ruby RabbitMQ clients blog

News and updates about various Ruby clients for RabbitMQ

Bunny 2.7.0 Is Released

TL;DR

Bunny 2.7.0 is released to rubygems.org.

2.7.0 is a maintenance release that introduces a couple of minor breaking changes.

In case your applications use Date/Time/DateTime serialisation with Bunny, all of them must upgraded to 2.7.0 at the same time.

Changes between Bunny 2.6.x and 2.7.0 (May 11th, 2017)

amq-protocol Update

Minimum amq-protocol version is now [2.2.0]](https://github.com/ruby-amqp/amq-protocol/blob/master/ChangeLog.md#changes-between-210-and-220-may-11th-2017) which includes a change in how timestamps are encoded.

Bunny::ContinuationQueue#poll Less Prone to Race Conditions

Bunny::ContinuationQueue#poll was reworked with feedback from Joseph Wong.

GitHub issue: #462

Recovery Attempt Counting Strategy Changed

Previous behehavior is not unreasonable but is not what many users and even RabbitMQ team members come to expect. Therefore it can be considered a bug.

Previously a reconnection counter was preserved between successful recoveries. This made the integration test that uses server-sent connection.close possible.

With this change, the counter is reset after successful reconnection but there’s an option to go back to the original behavior. We also do a hell of a lot more logging.

GitHub issue: #408

Absolute Windows File Paths are No Longer treated as Inline Certs

Contributed by Jared Smartt.

GitHub issue: #492.

Opening a Channel on an Intentionally Closed Connection Immediately Raises an Exception

Contributed by Alessandro Verlato.

GitHub issue: #465

Bunny::ConsumerWorkPool#shutdown Terminates Early When It’s Safe to Do So

Bunny::ConsumerWorkPool#shutdown(true) waited for consumer shutdown even if the pool wasn’t active (there were no consumers on its channel).

GitHub issue: #438.

Retry on new Ruby 2.1+ variations of EAGAIN, EWOULDBLOCK

GitHub issue: #456

Do Not Modify Host Arrays

Bunny now can work with frozen host arrays.

GitHub issue: #446

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael maintains Bunny and several other RabbitMQ client libraries.