2013-07-22 48 views
5

Trong celery tôi muốn nhận trạng thái công việc cho tất cả các nhiệm vụ cho tên tác vụ cụ thể. Đối với điều đó đã thử dưới mã.Trong cần tây làm thế nào để có được trạng thái nhiệm vụ cho tất cả các nhiệm vụ cho tên nhiệm vụ cụ thể?

import celery.events.state 

# Celery status instance. 
stat = celery.events.state.State() 

# task_by_type will return list of tasks. 
query = stat.tasks_by_type("my_task_name") 

# Print tasks. 
print query 

Bây giờ tôi đang nhận được danh sách trống trong mã này.

Trả lời

1

Điều này không được hỗ trợ nguyên bản. Tùy thuộc vào phụ trợ (Mongo, Redis, vv), bạn có thể hoặc không thể xem xét nội dung của hàng đợi và tìm hiểu nội dung trong đó. Ngay cả khi bạn làm, bạn sẽ bỏ lỡ các mục hiện đang được tiến hành.

Điều đó nói rằng, bạn có thể tự mình quản lý:

result = mytask.delay(...) 
my_datastore.save("mytask", result.id) 
... 
for id in my_datastore.find(task="mytask"): 
    res = AsyncResult(id) 
    print res.state 
Các vấn đề liên quan