Django Celery Time Limit Exceeded?
我有可能了一段時間運行一些任務。但是,大多數任務不應該花費幾秒鐘。我不想將全局超時設置爲考慮這些長時間運行的任務。相反,我想要一個短暫的全局硬時間限制,並手動調整我需要更長時間的任務。
當使用@task裝飾任務時,我執行了@task(timeout = None),但該任務仍然達到300秒的超時時間。我用task_function.delay(args)調用了任務。
有沒有辦法調用任務並自定義超時?
Django Celery Time Limit Exceeded?
我有可能了一段時間運行一些任務。但是,大多數任務不應該花費幾秒鐘。我不想將全局超時設置爲考慮這些長時間運行的任務。相反,我想要一個短暫的全局硬時間限制,並手動調整我需要更長時間的任務。
當使用@task裝飾任務時,我執行了@task(timeout = None),但該任務仍然達到300秒的超時時間。我用task_function.delay(args)調用了任務。
有沒有辦法調用任務並自定義超時?
This issue地址您可以使用自定義超時來調用任務的情況。它在issue802 branch中實施,但尚未掌握。您可以將它與主設備合併並使用所需的功能。
使用此修補程序,您可以在調用任務時傳遞超時。
tasks.add.apply_async(參數= [1,2],soft_timeout = 2,超時= 5)
你正在運行什麼版本的芹菜? current stable docs列表time_limit
是設置任務超時的正確參數,如果沒有提供時間限制,則使用工作人員默認值。要設置任務的長期(如60分鐘)的超時時間,你可以使用:
@task(time_limit=3600)
def mytask():
...
或者,您可以使用apply_async更改時間限制,當你調用任務:
mytask.apply_async(time_limit=3600, args=args)
我試圖上述兩種的,並且在兩種情況下,全局設置重寫。我使用2.5.5 –