django - 为什么 celery 可以使用“--concurrency 1 -P solo”而不是没有?
问题描述
当我使用:
celery -A FAM worker -l info --concurrency 1 -P solo
我可以从 celery 运行我的任务。
当我使用:
celery -A FAM worker -l info
它不起作用。但我不明白为什么。我看到有一个区别:“16(prefork)”与“1(solo)”。有什么区别 ?为什么独奏有效而其他无效?
解决方案
问题是Celery 从版本 4 开始不支持 Windows,因此在 Windows 上运行它可能会出现问题。就像并发一样。
根据这篇文章,我可以通过使用 Eventlet 来解决这个问题。
pip install eventlet
并且在启动 celery worker 时:
celery -A FAM worker -l info --concurrency 4 -P eventlet
推荐阅读
- postgresql - 必须至少安装一个 postgresql-client-
包裹 - python - 如何使用 2 个数据框填写表格
- python - 从 SMS 消息中获取参数
- go - 未定义:proto.ProtoPackageIsVersion3
- javascript - $("body").on("drop") 与 Dropzone.js
- laravel - Laravel Amazon S3 包突然停止工作
- postgresql - 您可以在运行时使用 dockerfile 或 docker-compose.yml 更改 application.properties
- javascript - 文本框的计算
- typeorm - 如何将 getManyAndCount() 与 typeorm 一起使用,我得到 null
- macos - 当在 OSx Mojave 的 Finder 中未选择任何内容时,如何将选项添加到右键单击上下文菜单?