【发布时间】:2013-01-03 15:41:42
【问题描述】:
如何使用 Python 代码以编程方式列出当前工作人员及其对应的 celery.worker.consumer.Consumer 实例?
【问题讨论】:
如何使用 Python 代码以编程方式列出当前工作人员及其对应的 celery.worker.consumer.Consumer 实例?
【问题讨论】:
您可以使用celery.control.inspect 来检查正在运行的工人:
>>> import celery
>>> celery.current_app.control.inspect().ping()
{u'celery@host': {u'ok': u'pong'}}
【讨论】:
简答:
your_celery_app.control.inspect().stats().keys()
一般来说,stats() 字典提供了很多信息。这是一个示例值:
{u'broker': {u'alternates': [],
u'connect_timeout': 4,
u'heartbeat': 0,
u'hostname': u'mypcisdabom',
u'insist': False,
u'login_method': u'AMQPLAIN',
u'port': 5672,
u'ssl': False,
u'transport': u'amqp',
u'transport_options': {},
u'uri_prefix': None,
u'userid': u'celeryabuser',
u'virtual_host': u'celeryvhost'},
u'clock': u'182309',
u'pid': 1660,
u'pool': {u'max-concurrency': 1,
u'max-tasks-per-child': u'N/A',
u'processes': [2496],
u'put-guarded-by-semaphore': True,
u'timeouts': [0, 0],
u'writes': u'N/A'},
u'prefetch_count': 4,
u'rusage': u'N/A',
u'total': {u'mymodule.my_func': 8}},
【讨论】:
如果你会在启动时添加--events 键。您可以查看此模块以检查当前工作人员等。http://docs.celeryproject.org/en/latest/userguide/monitoring.html
【讨论】: