2013-01-03 8 views

risposta

21

È possibile utilizzare celery.control.inspect per ispezionare i lavoratori che eseguono:

>>> import celery 
>>> celery.current_app.control.inspect().ping() 
{u'[email protected]': {u'ok': u'pong'}} 
+0

bella, con questo posso costruire un API REST che chiede se i lavoratori sono in alto o se è caduto e notificare l'utente – psychok7

+0

https://github.com/psychok7/django- sedano-ispezionare – psychok7

7

Risposta breve:

your_celery_app.control.inspect().stats().keys()

In generale stats() dizionario dà un sacco di informazioni. Ecco un valore di esempio:

{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}}, 
Problemi correlati