2012-03-09 88 views
1

我在与第三方API集成的项目上使用Celery。我需要发送一个文件到服务进行处理。发送文件后,我需要每10秒钟请求处理状态,直到完成为止。有限的芹菜拍打任务

就像我现在所做的那样,主要任务将分离子任务来检查处理的状态。我希望这些子任务像有限的芹菜节拍任务一样。当我将它称为子任务时,我想开始任务生命,并且我想在任务完成时结束任务。

完成此操作的最佳方法是什么?

回答

4

使用Task.retry,例如:

from celery.result import AsyncResult 

@task 
def verify_task(task_id): 
    result = AsyncResult(task_id) 
    if result.ready(): 
     do_something_with(result.get()) 
    else: 
     verify_task.retry(countdown=1) 

倒计时是秒的重试前的数。

+0

谢谢!很高兴知道重试旨在用于异常处理之外。 – Kenzic 2012-03-12 20:02:43