2010-08-26 37 views
6

Tôi muốn có thể hủy bỏ một tác vụ đang chạy từ hàng đợi Celery (sử dụng rabbitMQ). Tôi gọi công việc bằng cách sử dụngHủy bỏ tác vụ đang chạy trong Celery trong django

task_id = AsyncBoot.apply_async(args=[name], name=name, connect_timeout=3) 

nơi AsyncBoot là một tác vụ được xác định.

Tôi có thể nhận được ID nhiệm vụ (giả sử đó là chuỗi dài apply_async trả về) và lưu trữ nó trong cơ sở dữ liệu nhưng tôi không biết cách gọi phương thức hủy. Tôi thấy làm thế nào để làm cho phương pháp abortable với lớp nhiệm vụ Abortable nhưng nếu tôi chỉ có chuỗi nhiệm vụ id, làm thế nào để tôi gọi .abort() trên công việc? Cảm ơn.

Trả lời

10

apply_async trả về một thể hiện AsyncResult, hoặc trong trường hợp này một AbortableAsyncResult. Lưu task_id và sử dụng điều đó để tạo nhanh AbortableAsyncResult sau này, đảm bảo bạn cung cấp đối số tùy chọn phụ trợ nếu bạn không sử dụng default_backend.

abortable_async_result = AsyncBoot.apply_async(args=[name], name=name, connect_timeout=3) 
myTaskId = abortable_async_result.task_id 

Sau đó:

abortable_async_result = AbortableAsyncResult(myTaskId) 
abortable_async_result.abort() 
+1

Cần lưu ý rằng các tài liệu cần tây nói: "lớp này sẽ chỉ làm việc với các phần phụ trợ cơ sở dữ liệu." http://docs.celeryproject.org/en/latest/reference/celery.contrib.abortable.html?highlight=abort#celery.contrib.abortable – dgorissen

4

Bạn có thấy tài liệu tham chiếu không? http://celeryq.org/docs/reference/celery.contrib.abortable.html

Để hủy bỏ việc sử dụng nhiệm vụ result.abort():

>>> result = AsyncBoot.apply_async(...) 
>>> result.abort() 
+0

Nhưng làm thế nào để tôi nhận được đối tượng kết quả vào một thời điểm sau này nếu tất cả tôi có là task_id? Tôi đang cố gắng hủy bỏ tác vụ khi tôi không còn quyền truy cập vào đối tượng kết quả nữa. Tôi cần someway để kéo nó từ cơ sở dữ liệu. – Anon

+0

Chọn đối tượng kết quả trong cơ sở dữ liệu sau đó – ionelmc

+0

'mytask.AsyncResult (task_id)' hoặc 'từ celery.result nhập AsyncResult; AsyncResult (task_id) '. – asksol

Các vấn đề liên quan