如何在特定时间前重试芹菜任务?

2024-09-27 22:31:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我读了docs on Celery tasks,不明白我是怎么做我需要的。在

我想启动一个任务,每1秒运行并重试一次。3秒后,它应该停止重试并返回一个默认值。在

以下是一个无法按预期工作的POC代码:

@task(expires=3, default_retry_delay=1, max_retries=10)
def ttt(args):
    try:
        return slow_work_result(args)
    except SlowWorkFailed:
        pass

    try:
        return ttt.retry(countdown=1)
    except MaxRetriesExceededError:
        return False


ttt.apply_async(args=(1,)).get()

任务应在3秒后过期,但MaxRetriesExceededError应在10秒后引发。但当我运行它时,它会因为MaxRetriesExceededError而停止。在

我做错什么了?在

这个尝试除了构造更优雅吗?在


Tags: 代码docstaskreturnonargstaskscelery

热门问题