我正在使用 celery 最新的稳定版本 4.4.7。最近想使用celery.app.control包(https://docs.celeryproject.org/en/stable/reference/celery.app.control.html)。
根据 API,我尝试了以下代码,但这不起作用。我发现另一个包celery.task.control确实有效,但似乎它将在 5.0.0 中被删除。所以我想用celery.app.control. 任何人都知道它们之间的区别以及如何以celery.app.control正确的方式使用?谢谢。
我已经浏览了 celery 文档指南并在谷歌中搜索但没有找到答案。顺便说一句,我会抱怨 celery 文档很糟糕,它包含很多不一致和错误。:)
有用吗
>>> from celery.task.control import inspect
>>> i = inspect()
>>> i.registered()
{'celery@centos72_base': ['core.tasks.task1', 'core.tasks.task2']}
>>> i.active()
{'celery@centos72_base': []}
不行
>>> from celery.app.control import Inspect
>>> i = Inspect(app='test')
>>> i.active()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/root/.virtualenvs/test/lib/python3.6/site-packages/celery/app/control.py", line 119, in active
return self._request('active')
File "/root/.virtualenvs/test/lib/python3.6/site-packages/celery/app/control.py", line 98, in _request
return self._prepare(self.app.control.broadcast(
AttributeError: 'str' object has no attribute 'control'