Python djcelery PeriodictTasks.changed方法-更新查询运行缓慢
我一直在使用芹菜(3.1)、django芹菜(3.1.17)(即django芹菜)和django(1.9)来安排任务。最近我注意到,对Python djcelery PeriodictTasks.changed方法-更新查询运行缓慢,python,django,django-celery,celerybeat,celeryd,Python,Django,Django Celery,Celerybeat,Celeryd,我一直在使用芹菜(3.1)、django芹菜(3.1.17)(即django芹菜)和django(1.9)来安排任务。最近我注意到,对PeriodicTasks表的一个更新查询需要花费大量时间(大约1分钟),因此整个调度任务的过程都很慢。通过pre_save和pre_deletesingals on调用对模型PeriodicTasks的更新查询。因此,每当在PeriodicTask表中添加一个新对象时,信号就会触发和调用,只需一次又一次地更新相同PeriodicTask对象的值 我假设更新查询工
PeriodicTasks
表的一个更新查询需要花费大量时间(大约1分钟),因此整个调度任务的过程都很慢。通过pre_save
和pre_delete
singals on调用对模型PeriodicTasks
的更新查询。因此,每当在PeriodicTask
表中添加一个新对象时,信号就会触发和调用,只需一次又一次地更新相同PeriodicTask对象的值
我假设更新查询工作得很慢,因为数百万个任务在很短的时间内发布,并且对于每个任务,相同的PeriodicTasks对象都会得到更新
问题是(如果我不想升级到芹菜4.x),这个更新(关于PeriodicTasks
object)的目的是什么?如果我将删除,它会以任何方式影响django芹菜的功能吗
还需要指出的是,对于celery4,同样的信号调用也会发生在pre\u save
和pre\u delete
上。所以,即使我升级到celery4,它也帮不了我
更新
我在djcelery/models.py
中对两个信号调用进行了注释,结果一切正常。现在的问题是,这次更新调用的目的是什么?为什么调用这些信号来更新相同的PeriodicTasks
实例