0

使用 Bunny gem 订阅:

session = Bunny.new
session.start
channel = session.create_channel
queue   = channel.queue( queue_id, { durable: true })

queue.subscribe do | delivery_info, metadata, payload |
  puts payload
end

如何在不让服务器知道的情况下取消订阅?

用例:当消费者断​​开网络时,服务器不会收到通知。所以我需要找到一种方法来处理这个问题。但是当脚本退出或线程被杀死时,它显然会清理并通知服务器。

4

2 回答 2

1

如果您在 linux 下运行,您的测试可以执行 iptables 命令来阻止与 RabbitMQ 的连接。例如:

iptables -i lo -A INPUT -p tcp --dport 5672 -j DROP

要删除 DROP 规则,您可以执行:

iptables -D INPUT -i lo -p tcp -m tcp --dport 5672 -j DROP
于 2016-04-27T04:46:56.507 回答
0

你试过拔掉你的网线,或者禁用你的wifi卡吗?

如果这不是一个选项,我建议找到一个可以为您模拟这种效果的工具。但实际上,我认为使用硬线连接然后拔下物理电缆将是按需重现情况的最佳方式。

于 2016-04-26T18:44:26.417 回答