问题标签 [celeryd]

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 投票
5 回答
31282 浏览

python - 如何从脚本/模块 __main__ 启动 Celery worker?

我已经Celery在一个模块中定义了一个应用程序,现在我想从它的同一个模块启动工作程序__main__,即通过运行模块python -m而不是celery从命令行。我试过这个:

但现在 Celery 认为我正在运行没有参数的工人:

使用消息是您从中获得的消息celery --help,就好像它没有收到命令一样。我也试过

但这抱怨-A不被认可。

那么我该怎么做呢?或者,我如何将回调传递给工作人员以使其记录有关其配置的信息?

0 投票
1 回答
163 浏览

celery - 使用 ckanext-archiver 时命令“celeryd”未知

我使用 CKAN 作为我的开放数据门户,并按照https://github.com/ckan/ckanext-archiver上的说明安装 Archiver Extension 。我已经安装了 celery,如图所示:

但我无法运行它。

我的 CKAN 根目录:usr/lib/ckan/default/src 到 ckan 配置文件的路径:/etc/ckan/default

希望有人可以帮助解决我的问题。谢谢。

0 投票
2 回答
659 浏览

python - “芹菜停止”不起作用

我以一种不常见的方式使用 celery - 我在 celery 启动时创建自定义进程,这个进程应该在 celery 运行时一直运行。芹菜工人使用这个过程来完成他们的任务(不需要详细信息)。

我从命令行运行 celery,一切正常:

但是当我celeryd用来守护芹菜时,没有办法阻止它。命令celeryd stop试图停止芹菜,但从未结束。

当我在这两种情况下检查进程树时,存在差异 - 从命令行运行时,父进程显然是 celery 进程(主进程,其中有 celery 工人作为子进程)。杀死(停止)父 celery 进程将停止所有 celery 工人和我的自定义进程。

但是当使用 运行时celeryd,我的自定义进程有父进程/sbin/init- 并且调用celeryd stop不起作用 - 似乎主 celery 进程正在等待某些东西,或者无法停止我的自定义进程,因为它不是 celery 的子进程。

我对流程了解不多,也不容易找到信息,因为我不知道我应该搜索什么,所以任何提示都值得赞赏。

0 投票
1 回答
6029 浏览

python - 芹菜结果错误“参数必须是列表或元组”

我正在运行一个 Django 网站并且刚刚让 Celery 运行,但我遇到了令人困惑的错误。以下是代码的结构。

在测试.py 中:

在tasks.py中:

在 mainapp/settings.py 中:

芹菜调试控制台日志必须按列表/元组:

我得到的错误如上所述,AsyncResult(c.id).result: task args must be a list or tuple。这应该是一个简单的解决方案,但事实并非如此。当我把它列成这样的列表时:

然后它改变主意并告诉我AsyncResult(c.id).result: int() argument must be a string or a number, not 'list'

正如你可以想象的那样,我对可能是什么问题感到非常困惑。


编辑

任务.py

测试.py

function.app 打印

0 投票
0 回答
1034 浏览

django - 在窗户上运行芹菜

我正在使用 Django,我的开发环境是 Windows。昨天我花了一整天的时间试图用 RabbitMQ 在我的笔记本电脑上运行 celery。我浏览了所有教程,并没有提到关于 Windows 的特别内容。我遵循了芹菜的官方文档:http: //celery.readthedocs.org/en/latest/django/first-steps-with-django.html

最终我尝试在 Ubuntu 上运行它,一切正常。使用 celery 或 manage.py celeryd 运行后,worker 卡住了:

python manage.py celery worker -E -l 调试

我试图从 cygwin 运行 celeryd,但它也没有用。我的 RabbitMQ 配置没问题,我看到 django 能够向 RabbitMQ 发送消息。

我确定这与 Windows 有关,而不是缺陷配置。这是我的配置:

我还使用了 'localhost' 而不是 127.0.0.1。

有人对 Windows 上的 celery 有所了解吗?还有其他建议吗?

0 投票
2 回答
1808 浏览

python - 如何使用普通 celery 命令将 celery 作为守护进程运行

我有一个 django 应用程序,我正在使用 celery 任务在后台执行一些 csv 处理,所以我安装了rabbitmq-server这样sudo apt-get install rabbitmq-server的命令,rabbitmq-server 已安装并成功运行。

我在tasks.py应用程序内的模块中有一些芹菜任务代码并运行如下芹菜

它工作正常并在后台成功执行 csv 文件,但现在我只想守护上面的命令,我搜索了任何守护它的选项,但我没有找到任何要传递-D的参数,比如守护上面的命令。那么无论如何我可以守护上述命令并使芹菜运行吗?

0 投票
0 回答
313 浏览

rabbitmq - 如果有空闲进程,如何强制 celery 消耗下一个任务?

我有 celery 设置来从 RabbitMQ 获取任务并且事情正常工作,但我注意到以下行为(T:任务,P:进程):

此时,没有其他任务开始运行,尽管我将并发设置为 6 并且只有一个进程处于活动状态。我已经在 celery-flower 上尝试了add_consumer命令,但似乎没有任何反应。我可以在 RabbitMQ 上看到有消息ACK还没有,并且状态中的消息READY刚刚开始堆积,因为它们不会再被消耗约 2 小时。

有没有办法设置 celery 以便每当一个进程空闲时,它将消耗下一个任务,而不是等待原始批次完全完成?

0 投票
1 回答
1121 浏览

python - 芹菜工人没有填满并发槽

我有一个并发 4 的工作人员。我看到 4 个进程开始在花中,一切看起来都很好。

如果我在 shell 中执行此操作,那么我会看到 4 个工作人员接受任务,其余的被保留,它一次处理 4 个,直到队列为空。

但是,如果我逐行执行此操作,则只有前两个任务会被积极处理,然后从那时起它一次只处理两个。

有任何想法吗?

0 投票
0 回答
885 浏览

django - 芹菜工人停止使用亚马逊 sqs

我正在使用带有 sqs 的 celery 3.1.9。我有工人 common_w 作为守护进程运行。它适用于 sqs 上的常见队列。工作人员意外停止处理任务。没有异常和错误。

带有选项 -l DEBUG 的最后日志:

更新: strace 说:

然后我在配置中设置:

直到它工作正常...

0 投票
0 回答
1257 浏览

multithreading - 每个核心的最佳芹菜工人数量是多少?

celery 文档没有太多关于每台机器使用的 celery 工人的最佳数量的信息。我相信默认情况下 celery 会为每个机器核心创建一个工人。

我从实验中知道,在单核机器上,启动更多 celery 工人绝对是有益的(默认是 1 个工人,因为 1 个核心)。我正在寻找增加更多工人的回报略微递减的门槛——每个核心的最佳工人数量。我目前正在使用 celery 守护进程,其中守护进程配置文件 celeryd 具有以下行:

我的意图是为每个核心创建 3 个工人(所以如果我启动一台 4 核机器,总共会有 12 个工人)。我这样做是否正确,或者无论核心数量如何,这只会启动 3 个工作人员?