[英]How do I retry Celery task until certain time?
我閱讀了有關Celery任務的文檔 ,但無法理解我該怎么做。
我想啟動一個任務,運行並每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
而停止。
我究竟做錯了什么?
這個try-except構造可以更優雅嗎?
我寫了一個任務裝飾來重試任務,也許可以解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.