问题标签 [celery-broker]

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 投票
3 回答
14287 浏览

python - Celery:为什么我需要经纪人来执行定期任务?

我有一个独立脚本,它可以抓取页面、启动与数据库的连接并将数据库写入其中。我需要它在 x 小时后定期执行。我可以使用 bash 脚本和伪代码来实现:

从我读到的关于消息代理的内容中,它们用于从一个正在运行的程序向另一个程序发送“信号”,原则上就像 HTTP。就像我有一段代码接受用户的电子邮件 ID 一样,它将带有电子邮件 ID 的信号发送到另一段将发送电子邮件的代码。

我需要芹菜在heroku上运行定期任务。我已经在单独的服务器上有一个 mongodb。为什么我需要为rabbitmq或redis运行另一个服务器只是为了这个?我可以在没有经纪人的情况下使用芹菜吗?

0 投票
1 回答
4678 浏览

rabbitmq - 为什么 celery 需要消息代理?

由于 celery 是一个作业队列/任务队列,名称说明它可以维护其任务并处理它们。那为什么它需要像rabbitmq或redis这样的消息代理呢?

0 投票
1 回答
125 浏览

celery - 升级到 1.10.6 后,气流作业将执行器类型设置为 NoneType

我用芹菜工人配置了气流,而芹菜经纪人是redis。所有服务都已启动,我正在通过花来监控芹菜工人和任务。

当我在气流数据库中运行此查询时

我看到很多工作的 executor_class 为 NoneType :

在此处输入图像描述

我已经按照 1.10.6 文档中的要求配置了气流。但是自 2020-01-17 05:38 起,everyjob 已停止在 CeleryExecutor 上运行。这是气流升级的时间,它在从 1.10.1 升级到 1.10.6 后分配 NoneType。花中的监控还显示所有 celery 工作人员都处于活动状态,但他们没有通过代理发送任何消息。

气流配置

我应该怎么做才能确保将作业分配给'CeleryExecutor'以便DAG开始运行(如何让芹菜经纪人将这些任务分配给芹菜工人)?

0 投票
0 回答
1140 浏览

python - amqp.exceptions.PreconditionFailed: Queue.declare: (406) PRECONDITION_FAILED - 不等价的 arg

我正在尝试从 Rabbitmq 队列中使用 Celery 任务。

我的tasks.py在下面

但我收到此错误 amqp.exceptions.PreconditionFailed: Queue.declare: (406) PRECONDITION_FAILED - inequivalent arg。我不知道为什么?