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

Python 如何在特定时间前重试芹菜任务?,python,django,celery,amqp,Python,Django,Celery,Amqp,我读了这本书,不明白我该怎么做 我想启动一项任务,每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:

我读了这本书,不明白我该怎么做

我想启动一项任务,每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秒内过期,但应在10秒内引发
MaxRetrieseXceederRor
。但当我运行它时,它会因为
MaxRetrieseXceederRor
而停止

我做错了什么


这个try-except构造能更优雅吗?

我写了一个任务装饰来重试这个任务,也许可以解决您的问题


我写了一个任务装饰来重试这个任务,也许可以解决您的问题


expire当前未转移到重试任务,有一个问题尚未解决我相信expire当前未转移到重试任务,有一个问题尚未解决我相信