Vì trạng thái Celery documentation, tác vụ đã thực hiện sẽ không bị hủy bỏ bằng cách gọi .revoke()
, trừ khi terminate=True
được đặt. Nhưng điều đó không được khuyến khích, bởi vì nó sẽ tự giết chính nhân viên, điều này có thể đã bắt đầu một nhiệm vụ khác. Điều đó có nghĩa là không có cách nào đáng tin cậy, ổn định để làm điều đó?Có cách nào để ngăn chặn phi công việc đặc biệt của công nhân cần tây không?
EDIT: celery.contrib.abortable
không phù hợp với tôi, bởi vì, như trạng thái tài liệu, nó chỉ hoạt động với các phần phụ trợ cơ sở dữ liệu.
Tùy thuộc vào tác vụ bạn đang cố gắng chấm dứt (mạng, tệp, hoạt động cơ sở dữ liệu, v.v.), vui lòng xem ví dụ sau: http://stackoverflow.com/questions/37039941/celery- python-revoke Trong trường hợp của tôi nhiệm vụ chính của tôi gọi các tiến trình con không bị chấm dứt trừ khi tôi gửi một tín hiệu SIGKILL. – spicyramen
Có thể trùng lặp của [Dừng nhiệm vụ cần tây duyên dáng] (http://stackoverflow.com/questions/16493364/stopping-celery-task-gracefully) – Louis