Tôi đang sử dụng Celery để quản lý các tác vụ không đồng bộ. Đôi khi, tuy nhiên, quá trình cần tây đi xuống mà nguyên nhân không có nhiệm vụ để thực hiện. Tôi muốn có thể kiểm tra tình trạng cần tây và đảm bảo mọi thứ đều hoạt động tốt và nếu tôi phát hiện bất kỳ sự cố nào hiển thị thông báo lỗi cho người dùng. Từ tài liệu của Celery Worker, có vẻ như tôi có thể sử dụng ping hoặc inspect cho việc này, nhưng ping cảm thấy bị hack và không rõ ràng cách kiểm tra được sử dụng (nếu kiểm tra(). Registered() rỗng?).Phát hiện xem cần tây có sẵn/Chạy
Bất kỳ hướng dẫn nào về điều này sẽ được đánh giá cao. Về cơ bản những gì tôi đang tìm kiếm là một phương pháp như vậy:
def celery_is_alive():
from celery.task.control import inspect
return bool(inspect().registered()) # is this right??
EDIT: Nó thậm chí không giống như đăng ký() có sẵn trên cần tây 2.3.3 (mặc dù tài liệu 2.1 liệt kê nó). Có lẽ ping là câu trả lời đúng.
EDIT: Ping cũng không xuất hiện để làm những gì tôi nghĩ rằng nó sẽ làm, vì vậy vẫn không chắc chắn câu trả lời ở đây.
Có phải câu trả lời dưới đây không làm việc cho bạn? Là một người có vấn đề tương tự để giải quyết, tôi sẽ yêu một số xác nhận. – kojiro