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