django - Celery/Django - 如何以编程方式查看 worker 的状态

标签 django celery django-celery amazon-sqs

我刚刚安装了 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/

相关文章:

CELERYD_OPTS 配置

heroku - Celery在RabbitMQ上创建多个队列——非默认队列没有消费者

python - 抑制 django 天真的日期时间警告

python - 达到 Django Celery 最大数据库连接数

python - Django Celery 缓存锁不起作用?

python - Django celery ,导入错误 : Import by filename is not supported

django-celery - Django Celery 应用程序 - 没有名为 celery 的模块错误

django - 如何更新 Django 中的列数据类型

python - 使用 Python 创建一个简单的网页,其中模板内容是根据查询从数据库(或 pandas 数据框)填充的

django 模板编码样式换行用于长代码行