python - 仅使用 python 生成 celery 工人而不会阻塞
问题描述
我正在运行 celery 4.4.6 版,我正在努力了解如何仅使用 celery 的 python API 而不是 celery 命令行界面 (CLI) 来生成 celery 工作者。我想运行以下简化示例但不阻塞,以便执行最后的打印语句。这样我的代码可以继续运行,如果我愿意,我可以产生额外的工人。
我尝试通过一个论点,{'detach': True}
但没有任何成功。我已经看到使用Popen
实现我想要的示例的示例,但这涉及使用 CLI 调用 celery。将我实例化的工作人员保留为 python 对象并稍后在代码中引用它们会很好。达到我想要的效果的规范python方式是什么?
from celeryapp import app
from celery.bin.worker import worker
options = {'hostname': 'name', 'pool_cls': 'solo', 'loglevel': 'warning', 'queues': ['myqueue'], 'include': ['tasks']}
w = worker(app=app)
w.run(**options)
print('Worker started.')
在celeryapp.py
我有:
from celery import Celery
import celeryconfig
# Create Celery app
app = Celery(config_source=celeryconfig)
在celeryconfig.py
我有:
broker_url = 'redis://localhost:6379'
result_backend = 'redis://localhost:6379'
解决方案
推荐阅读
- spring-boot - 如何使用 spring-data-solr 为 solr 添加基本身份验证?
- node.js - 调用 Node.js 依赖项抱怨承诺的意外令牌
- python - 如果某个单元格包含python的“0”,有没有办法在excel中删除一行?
- c# - C# 列表未由对象填充
- javascript - 如何为 Firebase 中的数组类型文档项分配时间戳
- reactjs - “匹配器”类型上不存在属性“toBeInTheDocument”
' - python-3.x - AWS Glue Python Shell 脚本超时
- python - 跨不同文件训练网络时,每个循环的计算时间都会增加
- firemonkey - iOS 上的 StringReplace 行为
- android - 有没有办法重置 Traffic.Stats 计数器?