Ruby中的监听器:Bunny Gem或AMQP gem

时间:2013-09-23 14:06:54

标签: ruby rabbitmq amqp

我想在Ruby中建立一个监听器,它将在每半小时读取一个频道的消息。我对使用哪种宝石感到困惑:Bunnyhttps://github.com/ruby-amqp/bunny)或AMQPhttp://rubyamqp.info)?我知道Bunny很容易使用。但这会解决我的目的吗?

1 个答案:

答案 0 :(得分:4)

如何触发您的脚本?有问题的卷是什么?处理是按顺序完成还是在某种基于事件的系统中完成?两个库基本相同 - 除了一个核心差异。

Bunny用于顺序处理。在检索下一条消息之前,会从队列中弹出一条消息,然后进行处理,然后进行确认。要扩展它,您应该使用线程或进程一次处理更多消息。

AMQP gem是基于事件的,并在EventMachine反应器内运行。这非常适合于轻度工作负载,其中RabbitMQ或其他外部服务将成为瓶颈。使用AMQP gem,消费者将消耗尽可能多的消息(或告知),并为每条消息触发单个回调。如果回调进行自己的网络调用,这可能是最好的解决方案,因为它允许Ruby最有效地交错网络通信。

简短摘要,但基本上对于一个很少运行的脚本,我建议Bunny的顺序性,特别是如果你之前没有在EventMachine中工作过。如果不了解您的工作量,很难完全回答。

看看jondot/sneakers是否有现成的Bunny框架。