real-time monitoring of celery workers ile ilgili kereviz öğreticisine göre, çalışanlar tarafından üretilen olayları programatik olarak yakalayabilir ve buna göre harekete geçebilirsiniz.Celery-Django uygulamasında çalışanlardan olaylar nasıl izlenir?
Sorum şu: Bir monitörü, bir Celery-Django uygulamasında this örneğindeki gibi nasıl entegre edebilirim?
DÜZENLEME:
from celery import Celery
def my_monitor(app):
state = app.events.State()
def announce_failed_tasks(event):
state.event(event)
task_id = event['uuid']
print('TASK FAILED: %s[%s] %s' % (
event['name'], task_id, state[task_id].info(),))
with app.connection() as connection:
recv = app.events.Receiver(connection, handlers={
'task-failed': announce_failed_tasks,
'worker-heartbeat': announce_dead_workers,
})
recv.capture(limit=None, timeout=None, wakeup=True)
if __name__ == '__main__':
celery = Celery(broker='amqp://[email protected]//')
my_monitor(celery)
Yani için sonuç almak için, işçi tarafından gönderilen task_failed olayı yakalamak için, ve öğretici gösterileri gibi onun task_id almak istiyorum: eğitimde kod örneği benziyor Bu görev, uygulamam için yapılandırılmış ve daha fazla işleyen sonuç arka ucundan. Benim problemim, bir django-kereviz projesinde olduğu gibi, uygulamanın nasıl elde edilebileceğinin açık olmadığıdır.
Ayrıca, bir çalışan bir görevi yürütmeyi bitirdiğinde sonuçların nasıl işleneceği konusunda başka herhangi bir fikre de açığım.
, hangi olayların yakalama gerek? Örnek kodunuz var mı? – danodonovan