在使用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没有这个方法。
我是否考虑为类似的功能重写一些方法。有没有人遇到过类似的事情,并找到了一个很好的方法来实现这一点?
1条答案
按热度按时间p8h8hvxi1#
不要等待同步确认。您应该使用类似于to this的技术来跟踪未完成的确认并处理它们。