0

嗨,我们在 django 项目上使用 Python Huey https://pypi.org/project/huey/1.1.0/来运行我们的后台任务,我们将它用作某些函数的装饰器@task()。更准确地说,我们通过以下方式导入库:

from huey.contrib.djhuey import task

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

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

4

1 回答 1

1

是的你可以。huey 文档解释了这一点:

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():
    # ...
于 2021-03-29T22:15:40.420 回答