【问题标题】:Retry a Huey task when something fails失败时重试 Huey 任务
【发布时间】:2021-03-10 22:44:39
【问题描述】:

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

from huey.contrib.djhuey import task

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

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

【问题讨论】:

    标签: python django django-rest-framework python-huey


    【解决方案1】:

    是的,你可以。 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():
        # ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 1970-01-01
      • 2011-07-17
      • 2012-07-15
      • 1970-01-01
      • 1970-01-01
      • 2022-06-30
      相关资源
      最近更新 更多