【发布时间】:2021-09-26 21:46:11
【问题描述】:
我发现 django-q 没有按时执行我安排的任务。可能会有几秒到近一分钟的延迟。
我这样安排一个任务:
from django.utils import timezone
from django_q.models import Schedule
def schedule_auction_deadlines(self):
now = timezone.now()
if self.deadline:
name = "end_phase_%d" % self.id
Schedule.objects.filter(name=name).delete()
if now < self.deadline:
Schedule.objects.create(name=name, func="myapp.views.end_phase", args=str(self.id), next_run=self.deadline, schedule_type=Schedule.ONCE)
这是我在 settings.py 文件中的配置:
Q_CLUSTER = {
'name': 'myproj',
'label': 'Django Q',
'timeout': 30,
'catch_up': True,
'guard_cycle': 1,
'redis': os.environ.get('REDIS_URL', 'redis://localhost:6379'),
}
从文档看来,guard_cycle 可能是相关的,但我已经将它设置为最低设置。
什么可能导致这些延迟?
【问题讨论】:
标签: python django lag django-q