当某个任务失败时重试Huey任务

2024-06-12 05:56:46 发布

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

大家好,我们在django项目上使用Python Hueyhttps://pypi.org/project/huey/1.1.0/来运行后台任务,我们在一些函数上使用它作为decorator@task()。更准确地说,我们通过以下方式导入库:

from huey.contrib.djhuey import task

因此,在这个任务执行的函数上,在某些情况下,我们有数据库连接。例如,如果由于某种原因此任务失败,那么今天我们遇到了一个数据库问题,即数据库连接正在关闭(这是一个问题,我们必须找出此连接关闭的原因)。您可以想象,由于数据库连接,任务没有完成它的工作

我的问题是:有没有办法,我们可以配置这个Huey任务来重试执行。比如说,重试5次,每次重试间隔2秒


Tags: 项目django函数fromorgprojectpypi数据库
1条回答
网友
1楼 · 发布于 2024-06-12 05:56:46

是的,你可以。会议huey documation explains this

import random

@huey.task(retries=2)  # Retry the task up to 2 times.
def flaky_task():
    if random.randint(0, 1) == 0:
        raise Exception('failing!')
    return 'OK'

或设置自定义重试延迟:

@huey.task(retries=2, retry_delay=10)
def flaky_task():
    # ...

相关问题 更多 >