在利用Bunny gem进行发布确认时,结合类似于RabbitMQ channel.waitForConfirmsOrDie()
方法的最佳方法是什么?
现在正在使用:
if [email protected]_publisher_confirmations?
@channel.confirm_select
end
@channel.default_exchange.publish(args)
was_successful = @channel.wait_for_confirms()
但是理想情况下,对于我需要的情况,我希望等待确认的超时时间要短得多。现在,似乎默认的超时时间约为15秒,但这太长了,无法阻塞线程。如果我在三秒钟内未收到确认,我想发生的事情就是引发异常/返回false。
[我看到RabbitMQ文档中有一个waitForConfirmsOrDie()
,但是Bunny没有可用的方法。
我正在考虑重写一些用于类似功能的方法。有没有人遇到过类似的事情并找到了实现此目标的好方法?
不要等待同步确认。您应该使用类似waitForConfirmsOrDie()
的技术来跟踪未完成的确认并进行处理。
NOTE: RabbitMQ团队监视to this rabbitmq-users
,并且有时仅在StackOverflow上回答问题。