gar*_*ima 17 cron mongodb node.js laterjs node-celery
请在Node JS中建议等效的Celery来运行异步任务.我已经能够搜索以下内容:
我在后台运行手动和自动线程并与MongoDB交互.
node-celery使用的是redis DB而不是Mongo DB.有什么方法可以改变吗?当我安装node-celery redis作为依赖安装.
我是芹菜的新手,请指导.谢谢.
Van*_*uan 12
Celery基本上是RabbitMQ客户端.有生产者(任务),消费者(工人)和AMQP消息代理,它们在任务和工作者之间传递消息.
知道这将使您能够在node.js中编写自己的芹菜.
node-celery这里是一个库,它使您的节点进程既可以作为芹菜客户端(生产者/发布者)又可以作为芹菜工作者(消费者).
请参阅https://abhishek-tiwari.com/post/amqp-rabbitmq-and-celery-a-visual-guide-for-dummies
去Kue的,这是一个整全的解决方案,类似于芹菜在Python字; 它具有以下概念:生产者/消费者,延迟任务,任务重审,任务TTL,跨多个消费者收听同一队列的循环任务的能力等.
可能Celery更先进,功能更多,需要更多经纪人支持,如果你愿意,你可以使用node-celery,但是,在我看来,我认为没有必要选择需要安装python和node的混合解决方案.仅使用在90%的情况下足够的语言(当然,除非必要).
----------------------------------------
编辑二千零十八分之一
我的建议是不要现在使用Kue,因为它似乎是一个停滞不前的项目,而是使用Celery.它得到了社区的很好支持和维护,并支持大量用例.
去 Kue,它是一个完整的解决方案,类似于 Python 中的 Celery;它具有以下概念:生产者/消费者、延迟任务、任务重试、任务 TTL、跨多个消费者轮询任务的能力,这些消费者监听同一队列等。
Kue,经过这么多时间后,仍然有相同的旧核心问题未解决:
如果阅读本文的人不想重写 Kue,请不要从它开始。它适用于简单的任务。但是,如果您想处理大量并发任务或任务链(当一个任务创建另一个任务时),请停止浪费时间。
我浪费了一个月试图调试 Kue,但仍然没有成功。最好的选择是在 RabbitMQ 和Rabbot(另一个 RabbitMQ 总结)上为 Pubs/sub 消息队列更改 Kue 。
就我个人而言,我并没有用过芹菜来全力以赴,但是当我一直在寻找芹菜的替代品时,发现有人为 Kue 提供建议的方式让我的血液沸腾了。
如果您想发送延迟的电子邮件(如 Kue 示例),您可以随心所欲,而不必担心错误。但是如果你想要一个可靠的系统任务/消息队列,甚至不要从 Kue 开始。我个人会选择 5. node-celery(node celery)
还值得一提的是https://github.com/OptimalBits/bull。它是一个快速、可靠、基于 Redis 的队列,专为稳定性和原子性而编写。
Bull 4 目前处于测试阶段,并具有一些不错的功能https://github.com/taskforcesh/bullmq
归档时间: |
|
查看次数: |
12916 次 |
最近记录: |