Я пытаюсь настроить периодическую задачу, срок действия которой истекает через некоторое время. Я использую Django 1.5.1, celery 3.0.19 и django-celery 3.0.17 (все от пипса). Это отрывок кода для создания задачи:Сельдерей 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 секунд не истекает. Сначала я подумал, что это проблема часового пояса между джанго и сельдереем, поэтому я разрешил ей работать в течение 3 часов (моя разница с UTC), но она все еще не истекает.
Во время моих тестов мне действительно удавалось сделать это по истечении одного раза (и регистратор продолжал повторять, что истек, каждые 3 секунды), но с тех пор я не смог воспроизвести его.
Может ли кто-нибудь пролить свет на то, что я делаю неправильно? Спасибо!
Я просто сделал THT и до сих пор ничего не получил – Gabe
Попробуйте запустить сельдерей в течение 1 дня, если бы закончились задачи после нескольких часов, что проблемы с часовым поясом настроек. Если бы я был прав, вы должны повторить настройки проверки, связанные с часовыми поясами. –