Tôi đang sử dụng công ty môi giới Celery 3.1.16 (chạy RabbitMQ) và nhiều công nhân Celery với cần tây được ủy quyền thông qua người giám sát. Vấn đề là cập nhật nhiệm vụ. Khi tôi cập nhật tệp tasks.py của mình, nhân viên cần tây chạy mã cũ.Celery autoreload không hoạt động
Cần tây ra mắt lệnh:
/home/my_project/bin/celery -B --autoreload --app=my_app.celery:app worker --loglevel=INFO
tôi bao gồm tập tin nhiệm vụ trong django settings.py:
CELERY_IMPORTS = [
'my_app.tasks'
]
pyinotify được cài đặt và hoạt động (tôi đoán vậy), một phần của bản ghi cần tây:
[2014-12-16 20:56:00,016: INFO/MainProcess] Task my_app.tasks.periodic_update_task_statistic[175c2557-7c07-43c3-ac70-f4e115344134] succeeded in 0.00816309102811s: 'ok!'
[2014-12-16 20:56:11,157: INFO/MainProcess] Detected modified modules: ['my_app.tasks']
[2014-12-16 20:57:00,001: INFO/Beat] Scheduler: Sending due task my_app.tasks.periodic_update_task_statistic (my_app.tasks.periodic_update_task_statistic)
[2014-12-16 20:57:00,007: INFO/MainProcess] Received task: my_app.tasks.periodic_update_task_statistic[f22998a9-dcb4-4c29-8086-86dd6e57eae1]
Vì vậy, câu hỏi của tôi: cách cập nhật cần tây và áp dụng mã nhiệm vụ mới, nếu chúng đã được sửa đổi?
Tôi không có một câu trả lời. Tôi vẫn chỉ cần khởi động lại công nhân của tôi khi tôi làm một mã đẩy. http://stackoverflow.com/questions/16929264/how-can-i-automatically-reload-tasks-modules-with-celery-daemon – pztrick
Tương tự tại đây. Tôi khởi động lại cần tây ở cuối quy trình triển khai. Triển khai được thực hiện bằng cách sử dụng vải cho những vấn đề đó. –
Xin chào LJ, mọi thông tin cập nhật về câu hỏi này? Bạn có thể tìm ra? – Desprit