我想在Ruby
中建立一个监听器,它将在每半小时读取一个频道的消息。我对使用哪种宝石感到困惑:Bunny
(https://github.com/ruby-amqp/bunny)或AMQP
(http://rubyamqp.info)?我知道Bunny很容易使用。但这会解决我的目的吗?
答案 0 :(得分:4)
如何触发您的脚本?有问题的卷是什么?处理是按顺序完成还是在某种基于事件的系统中完成?两个库基本相同 - 除了一个核心差异。
Bunny用于顺序处理。在检索下一条消息之前,会从队列中弹出一条消息,然后进行处理,然后进行确认。要扩展它,您应该使用线程或进程一次处理更多消息。
AMQP gem是基于事件的,并在EventMachine反应器内运行。这非常适合于轻度工作负载,其中RabbitMQ或其他外部服务将成为瓶颈。使用AMQP gem,消费者将消耗尽可能多的消息(或告知),并为每条消息触发单个回调。如果回调进行自己的网络调用,这可能是最好的解决方案,因为它允许Ruby最有效地交错网络通信。
简短摘要,但基本上对于一个很少运行的脚本,我建议Bunny的顺序性,特别是如果你之前没有在EventMachine中工作过。如果不了解您的工作量,很难完全回答。
看看jondot/sneakers是否有现成的Bunny框架。