问题标签 [node-celery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6326 浏览

javascript - 使用 node.js 创建一个 Celery worker

使用node-celery,我们可以启用 node 将 Celery 作业推送到任务队列。我们如何让节点成为 Celery worker 并消费队列?

0 投票
0 回答
656 浏览

node.js - 对 celery 任务的 Node.js 脚本(node-celery)调用不正确地处理“self”参数

我创建了一个 celery 任务脚本,如下所示:

我确实定义了以下队列和路线:

我按如下方式启动芹菜工人:

我可以从celery shell成功运行AddTask.get(1,3)

然后我使用node-celery模块运行以下 node.js 脚本:

该脚本返回以下错误:

该脚本确实将正确的x: & y:参数传递给 celery worker,但self参数未正确处理。有谁明白为什么会发生这种情况?

我已经使用定义一组函数而不是具有成员函数的类的任务脚本成功地测试了上面指定的node.js脚本:

我猜celery.contrib.methods模块在我上面描述的情况下失败了。有人对这个问题有任何见解吗?

0 投票
5 回答
22236 浏览

node.js - Node JS 中 Celery 的等价物

请在 Node JS 中建议一个等效的 Celery 来运行异步任务。我已经能够搜索以下内容:

  1. 稍后
  2. 粑(),
  3. 咖啡-resque (咖啡-resque )
  4. 定时(定时
  5. 节点芹菜(节点芹菜

我在后台运行手动和自动线程并与 MongoDB 交互。

node-celery 使用的是 redis DB 而不是 Mongo DB。有什么办法可以改变吗?当我安装 node-celery 时,redis 被安装为依赖项。

我是芹菜新手,请指导。谢谢。

0 投票
3 回答
1973 浏览

celery - 芹菜广播任务不起作用

我试图制作一个广播任务,但每次通话只有我的一个工作人员收到它。你能帮帮我吗?(我使用的是 rabbitmq 和 node-celery)

我还测试了以下配置但无法正常工作。

编辑

通过添加 -Q 广播更改了如何运行工作者后,现在我遇到了这个错误:

0 投票
1 回答
229 浏览

node.js - node-celery 异步,等待 client.call() 完成它的内部函数

我在我的 node.js 服务器中使用 node-celery 0.2.8,我创建,在 client.on() 上使用 await,希望代码首先控制台记录结果,然后“最终”记录。但是代码控制台日志'终于'首先,然后在遍历所有代码之后,控制台日志结果。谁能帮我让等待在client.on()上工作?我只是希望代码可以按顺序执行,并等待异步请求。

0 投票
1 回答
889 浏览

rabbitmq - 如何使用 celery beat 和 node-celery

我正在使用 node-celery github 链接与 rabbitmq 一起 实现 celery celery 第一步。

就像在 celery 中一样,我们定义任务然后推送它们。

我在tasks.py中定义的任务如下:

我运行以触发任务的文件:

eta.js:

我使用以下命令启动 celery worker:

现在,当我运行 eta.js 并且我在 tasks.py 中定义的任务“getOrders”获得触发器时,它进一步点击了我请求的 url,并且该 URL 完成了它的工作。

要运行 eta.js,我运行:

我想要的是我的任务“getOrders”每 x 秒后继续运行。我已经阅读了有关在 celery周期性任务 celery中设置周期性任务的信息,但它在 python 中,我在 node-celery 中需要它。

如果可能的话,我想在节点芹菜中使用芹菜节拍,还是应该避免使用节点芹菜?并使用 celery python setup,我知道 python,但找不到在 python 中设置 celery 的任何链接。

任何对芹菜有很好了解的人都可以帮助我或指导我学习一些教程。

谢谢!

0 投票
1 回答
79 浏览

redis - node-celery redis 后端无法调用 duplicate()

我正在使用带有 redis 后端的 node-celery (v0.2.8)。当我尝试调用 celery.createClient() 时,我得到以下结果:

在 celery.js 第 137 行中调用了 redis.createClient(),然后它尝试在返回的对象上调用 duplicate()。但该对象不包含“重复”属性。

对我来说真正奇怪的是 redis 模块似乎没有被列为 node-celery 的依赖项,而且我没有在本地安装它。所以看起来代码应该在到达这一点之前很久就抛出异常。

我在 node-celery repo 中没有看到任何相关问题,所以我无法解释这一点。

0 投票
1 回答
1851 浏览

python - 使用 JSON 序列化程序配置 Celery (Python + node.js)

我在 Python 中使用celery模块 v3.1.25运行 Celery 工作程序,并在 node.js 中使用node-celerynpm 包v0.2.7 (not the latest)运行 Celery 客户端。

当使用 Python Celery 客户端发送作业时,Python Celery worker 工作正常。

问题:使用node-celery客户端向Celery后端发送任务时,在JS控制台报错:

(STDERR) Celery 应该配置 json 序列化器

Python Celery worker 配置有:

node-celery客户端配置:

这是 Python Celery worker 上的配置问题吗?我们是否错过了可以将返回序列化格式更改为的配置参数json


更新

根据 ChillarAnand 的建议使用result_serializers和参数更新accept_content

但是 node.js Celery 客户端仍然认为它不在json,抛出相同的错误消息。

它给出了这个错误,因为结果是'application/x-python-serialize'.

检查是这种情况,因为 RabbitMQ 管理控制台显示结果是content_type: application/x-python-serialize


这个论坛帖子说这是因为任务是在加载配置之前创建的。

这是我的文件的样子:

项目/芹菜.py

项目/任务.py

有没有更好的方法来构建代码以确保在任务之前加载配置?

0 投票
2 回答
504 浏览

node.js - 如何在 node-celery 中定义任务?

我正在使用node-celery。我只需要实现调度任务,以便任务可以在特定时间在后台运行。我很困惑如何定义我的任务,目前我在实现 node-celery 的同一个文件中定义任务。

在上面的代码中,我只需要 node-celery,然后为 amqp 创建了一个客户端。现在我必须连接客户端,然后 使用一些参数调用我的任务send_batch_email_using_mailgun 。

这里_send_batch_email_using_mailgun_是在同一文件中的代码下方使用一些参数定义的任务。我希望我的函数_send_batch_email_using_mailgun_应该在一段时间后调用。我的代码不起作用我想我必须在其他地方定义我的任务功能,但我不知道在哪里定义它们。我需要在 python 文件中创建我的任务吗?如果是,那么如何将它们导入到我的 js 文件中?

0 投票
1 回答
161 浏览

javascript - node-celery client.call('task') 从不执行/完成?

我是 node-celery 的新手,我试图通过从 celery 任务中获取结果来开始简单。我已经以“等待”的方式编写了我的 JS,以便等待 celery 的结果然后继续前进,但是,似乎 JS 从来没有从“client.call('task')”得到结果

芹菜代码:

节点 JS 代码:

我不确定为什么它永远不会超过从未从通话中得到结果的原因。我有很多用于调试的 console.log() 让我相信它已成功连接和调用任务

它没有连接到芹菜吗?我把任务叫错了吗?这不应该是一个时间问题,因为我已经执行了这个并且等待了 10 分钟仍然没有结果。我对此很陌生,所以任何帮助将不胜感激