Theo hướng dẫn cần tây liên quan đến real-time monitoring of celery workers, người ta cũng có thể nắm bắt theo chương trình các sự kiện do công nhân sản xuất và thực hiện hành động tương ứng.Làm thế nào để theo dõi các sự kiện từ công nhân trong ứng dụng Celery-Django?
Câu hỏi của tôi là làm cách nào tôi có thể tích hợp màn hình dưới dạng màn hình trong ví dụ this, trong ứng dụng Celery-Django?
EDIT: Các mã ví dụ trong hướng dẫn trông giống như:
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)
Vì vậy, tôi muốn chụp sự kiện task_failed gửi bởi người lao động, và để có được task_id của nó giống như các chương trình hướng dẫn, để có được những kết quả cho nhiệm vụ này từ backend kết quả đã được cấu hình cho ứng dụng của tôi và xử lý nó thêm nữa. Vấn đề của tôi là nó không phải là rõ ràng với tôi làm thế nào để có được các ứng dụng, như trong một dự án django-cần tây nó không phải là minh bạch cho tôi sự khởi tạo của thư viện Celery.
Tôi cũng mở cho bất kỳ ý tưởng nào khác về cách xử lý kết quả khi một công nhân đã hoàn thành việc thực hiện một tác vụ.
Tôi nghĩ rằng bạn sẽ có được một chút cụ thể hơn, những sự kiện cần chụp? Bạn có mã ví dụ nào không? – danodonovan