用于RabbitMQ的node-celery与node-amqp

时间:2013-11-13 22:37:19

标签: node.js rabbitmq celery

我最近一直在阅读任务队列和消息队列,我对所有内容如何组合起来感到困惑。

我看到node-celery和node-amqp都提供了添加到RabbitMQ队列的方法。但是,node-celery被描述为“任务队列”,而node-amqp被描述为“RabbitMQ的客户端”。有什么不同?或者node-amqp是否提供了与Celery类似的功能?

另外,RabbitMQ还没有队列吗?为什么我需要在RabbitMQ之上使用Celery?

1 个答案:

答案 0 :(得分:3)

这里有两个概念:

  • RabbitMQ是支持AMQP的消息总线实现。因此,它是可以用于任何你喜欢的通用消息传递系统(不仅仅是任务)。
  • Celery是任务管理库/框架,它使用AMQP(或数据库,如果您将其配置为)在代码和工作进程之间进行通信。它处理与任务相关的职责,如获取任务结果,管理工作进程等。