しばらくすると期限切れになる定期的なタスクを設定しようとしています。Django 1.5.1、セロリ 3.0.19、および django-celery 3.0.17 (すべて pip から) を使用しています。これは、タスクを作成するための抜粋コードです。
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
タスクは問題なく作成されており、beat は 3 秒ごとにタスクを実行していますが、10 秒経過しても有効期限が切れません。最初は、djangoとセロリの間のタイムゾーンの問題だと思ったので、3時間実行しましたが(UTCとの差)、それでも期限切れになりませんでした。
テスト中に、実際に一度期限切れにすることができました(そして、ロガーは3秒ごとに期限切れを繰り返し続けました)が、それ以来再現できませんでした。
誰かが私が間違っていることに光を当てることができますか? ありがとう!