芹菜工人没有消耗足够的任务

 prescott1972 发布于 2023-01-11 19:46

我和Celery有一个奇怪的问题.

我使用RabbitMQ作为消息代理和结果后端.

任务通过pickle序列化,但它们只获取数据库中文件的id.他们获取它,对它做一些工作并将结果写回数据库.我只是将id存储在结果后端.

我使用一个组来提供任务,并且不从其中运行任何子任务.

我有一个并发= 8的工人(prefork)

如果我启动任务,则所有8个进程都在工作(100%cpu使用率).

第一个任务完成后,奇怪的行为就开始了.该过程不会开始新任务.任务get初始化(我使用CELERYD_MAX_TASKS_PER_CHILD = 1)但是不会调用run方法.

所以问题是,并非所有流程都在运行.

尝试了许多配置设置但没有改变此行为.

你有什么主意吗?

它不是数据库等.本地运行消息代理和数据库.还看了一下有花的工人,它说大部分时间大约有4个过程都是活跃的.其他任务是保留的,但不要启动.

希望你能帮助我!

1 个回答
  • 终于想通了:

    这只是我必须放置然后启动工人的一个选项.

    使用-Ofair选项启动worker就可以了!

    请参阅:http: //docs.celeryproject.org/en/latest/userguide/optimizing.html#prefork-pool-prefetch-settings

    谢谢你的帮助 :)

    2023-01-11 19:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有