我試圖設置一段時間後過期的週期性任務。我使用的是Django 1.5.1,celery 3.0.19和django-celery 3.0.17(一切都來自pip)。 這是摘錄代碼來創建任務:芹菜PeriodicTask不會過期
from django.utils import timezone
from datetime import timedelta, datetime
from djcelery.models import PeriodicTask, IntervalSchedule
interval = IntervalSchedule.objects.get(pk=1) # Added through fixture - 3sec interval
expiration = timezone.now() + timedelta(seconds=10)
task = PeriodicTask(name='fill_%d' % profile.id,
task='fill_album',
args=[instance.id],
interval=interval,
expires=expiration) task.save()
我正與./manage.py celeryd -B
運行芹菜正在創建任務就好了,和節拍正在運行,每3秒,但經過10秒不會過期。起初我以爲這是django和芹菜之間的時區問題,所以我讓它運行了3個小時(與UTC不同),但它仍然不會過期。
在我的測試過程中,我實際上已經設法使其過期一次(並且記錄器不斷重複它已經過期,每3秒),但是自那之後我一直無法重現。
任何人都可以闡明我做錯了什麼? 謝謝!
我只是做THT,還是把 – Gabe
儘量在1個天潤芹菜沒什麼,如果任務將結束幾個小時,這個問題後,與設置時區。如果我是對的,你應該重複檢查與時區有關的設置。 –