我刚刚安装了 Celery,我想创建一个简单的状态页面,显示当前的 worker 数量及其状态。
这可能吗?从网络搜索中,我发现最好的是 celery.current_app.control.inspect()
但据我所知,它没有提到任何关于 worker 的事情。 (如果重要的话,我将 Kombu 与 SQS 用于后端)
最佳答案
在 the documentation of celery workers解释了 inspect
的输出命令。
默认使用 celery.current_app.control.inspect()
返回一个“检查器对象”,它允许您询问所有正在运行的 worker 的状态。例如,如果您使用两个名为“adder”和“sleeper”的正在运行的 worker 执行此代码:
i = celery.current_app.control.inspect()
i.registered()
调用
i.registered()
可以返回类似的东西: {
'adder@example.com': ['tasks.add'],
'sleeper@example.com': ['tasks.sleeptask'],
}
总之,“检查员”方法
registered
, active
, scheduled
等返回一个字典,其中包含由 celery.current_app.control.inspect()
时选择的 worker 分类的结果。被调用(如果没有工作人员作为参数传递,则隐式选择所有工作人员)。
关于django - Celery/Django - 如何以编程方式查看 worker 的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36264495/