5
我正在使用芹菜2.5.1,我試圖用countdown
在20秒後運行任務,但它立即執行。倒計時的芹菜任務
我使用它作爲:
DemoTask.apply_async(countdown = 20)
我在這裏失去了一些東西?
我正在使用芹菜2.5.1,我試圖用countdown
在20秒後運行任務,但它立即執行。倒計時的芹菜任務
我使用它作爲:
DemoTask.apply_async(countdown = 20)
我在這裏失去了一些東西?
這個問題很可能不像您在印度那樣處於正確的時區。通過設置countdown=20
,您可能會告訴Celery在3小時前20秒後執行任務。
我建議使用pytz library告訴芹菜在合適的時間啓動任務:
from datetime import datetime, timedelta
from pytz import timezone
# Set timezone: http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
my_tz = timezone('US/Eastern')
DemoTask.apply_async(eta=my_tz.localize(datetime.now()) + timedelta(seconds=20))
甚至更容易,如果你使用Django的(並且已經在settings.py
設置TIME_ZONE
):
有類似的問題。夏季儲蓄時間結束,突然我們的倒計時被忽略... – tschale
你有沒有機會擁有'CELERY_ALWAYS_EAGER = True'? – Banana
不,我不是。我也嘗試設置'CELERY_ALWAYS_EAGER = False' – Siddharth
@Siddharth倒計時不適用於'CELERY_ALWAYS_EAGER = True'嗎?你會直覺地期望相同的行爲,無論是同步還是異步運行,但似乎倒計時被忽略:/我找不到任何文檔說明這一點,閱讀代碼似乎並不明顯。 –