1

我在与第 3 方 API 集成的项目中使用 Celery。我需要将文件发送到服务进行处理。发送文件后,我需要每 10 秒请求一次处理状态,直到完成。

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

实现这一目标的最佳方法是什么?

4

1 回答 1

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)

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

于 2012-03-10T01:50:58.060 回答