Open dxygit1 opened 3 months ago
The last_run_at time is always in UTC, which differs from my local configuration time. This causes tasks to still run despite being expired.
version
celery 5.4.0 django-celery-beat 2.6.0 django-celery-results 2.5.1
config
USE_TZ = False BROKER_URL = 'redis://:Password@123@172.16.120.12:6379/0' RESULT_BACKEND = 'redis://:Password@123@172.16.120.12:6379/0' ACCEPT_CONTENT = ['json'] TASK_SERIALIZER = 'json' RESULT_SERIALIZER = 'json' TASK_RESULT_EXPIRES = 60 * 60 * 24 TIMEZONE = 'Asia/Shanghai' CELERYBEAT_SCHEDULER = 'django_celery_beat.schedulers.DatabaseScheduler' WORKER_CONCURRENCY = 20 WORKER_PREFETCH_MULTIPLIER = 20 WORKER_MAX_TASKS_PER_CHILD = 100 WORKER_DISABLE_RATE_LIMITS = True ENABLE_UTC = False DJANGO_CELERY_BEAT_TZ_AWARE = False TASK_TIME_LIMIT = 30 * 60
Execute tasks.
from django_celery_beat.models import PeriodicTask, IntervalSchedule schedule, created = IntervalSchedule.objects.get_or_create( every=10, period=IntervalSchedule.SECONDS, ) from datetime import datetime, timedelta expires=datetime.now() + timedelta(seconds=30) periodic_task = PeriodicTask.objects.create( interval=schedule, # 我们上面创建的调度 name='task1', # 唯一的任务名称 task='task1', # 任务的导包路径 expires=expires, # 任务的过期时间 )
I only get the correct behavior when I set USE_TZ to True, but I don't want to change USE_TZ to True.
I got this issue too
The last_run_at time is always in UTC, which differs from my local configuration time. This causes tasks to still run despite being expired.
version
config
Execute tasks.