ruby-amqp / bunny

Bunny is a popular, easy to use, mature Ruby client for RabbitMQ
Other
1.39k stars 303 forks source link

Expand entity cache to cover the entire connection #580

Open michaelklishin opened 5 years ago

michaelklishin commented 5 years ago

See https://github.com/ruby-amqp/bunny/issues/579 for background.

RabbitMQ Java client has tweaked its "known entity" tracking to track and invalidate entries in its cache of known entities based on some of their attributes for operations that are performed on the same connection (but any channel on that connection). In other words, if a queue was declared on one channel but deleted on another channel, it should not be recovered by automatic connection recovery.

AutorecoveringConnection and AutorecoveringChannel demonstrate the idea.