我的应用程序A在应用程序B中调用一个芹菜任务longtask。但是,longtask在B中注册,但没有在A中注册,所以A使用send_task
调用它。我希望a中有一个机制定期检查longtask是否完成。我该怎么做?
send_task
返回一个包含任务id的AsyncResult
。您可以使用此id定期检查longtask的结果。
result = my_app.send_task('longtask', kwargs={})
task_id = result.id
# anywhere else in your code you can reuse the
# task_id to check the status
from celery.result import AsyncResult
import time
done = False
while not done:
result = AsyncResult(task_id)
current_status = result.status
if current_status == 'SUCCESS':
print('yay! we are done')
done = True
time.sleep(10)