Ruby RabbitMQ clients blog

News and updates about various Ruby clients for RabbitMQ

Bunny 0.9.0.pre10 Is Released

TL;DR

Bunny 0.9.0.pre10 is released to rubygems.org.

This is a bug fix release. It includes one breaking API change

Changes between Bunny 0.9.0.pre9 and 0.9.0.pre10

This release contains a breaking API change.

Concurrency Improvements On JRuby

On JRuby, Bunny now will use java.util.concurrent-backed implementations of some of the concurrency primitives. This both improves client stability (JDK concurrency primitives has been around for 9 years and have well-defined, documented semantics) and opens the door to solving some tricky failure handling problems in the future.

Explicitly Closed Sockets

Bunny now will correctly close the socket previous connection had when recovering from network issues.

Bunny::Exception Now Extends StandardError

Bunny::Exception now inherits from StandardError and not Exception.

Naked rescue like this

1
2
3
4
5
begin
  # ...
rescue => e
  # ...
end

catches only descendents of StandardError. Most people don’t know this and this is a very counter-intuitive practice, but apparently there is code out there that can’t be changed that depends on this behavior.

This is a breaking API change.

Plans for 0.9.0 Final

There is still a few things we need to do before Bunny 0.9 can be declared complete:

  • Add logging
  • Finish TLS support
  • Make network failure recovery even more flexible

Michael on behalf of the Ruby RabbitMQ Clients Team