如何使用django使芹菜节拍任务对所有对象而不是单个对象有效?
我试图通过调度程序任务删除过期的收据,但我面临一个问题,因为每次函数运行时,它只删除一个对象,尽管还有很多对象。当调度程序每60分钟运行一次时,如何更改代码以确保它删除所有已过过期日期的对象如何使用django使芹菜节拍任务对所有对象而不是单个对象有效?,django,django-views,celery,django-celery,django-celery-beat,Django,Django Views,Celery,Django Celery,Django Celery Beat,我试图通过调度程序任务删除过期的收据,但我面临一个问题,因为每次函数运行时,它只删除一个对象,尽管还有很多对象。当调度程序每60分钟运行一次时,如何更改代码以确保它删除所有已过过期日期的对象 @periodic_task(run_every=crontab(minute='*/60')) def delete_expired_receipts(): receipts = Receipt.objects.all() for receipt in receipts:
@periodic_task(run_every=crontab(minute='*/60'))
def delete_expired_receipts():
receipts = Receipt.objects.all()
for receipt in receipts:
if receipt.expiry_date <= timezone.now():
receipt.delete()
return "deleted the receipts at {}".format(timezone.now())
return "No receipts"
@定期任务(每运行一次=crontab(分钟='*/60'))
def delete_expired_receipts():
receives=Receipt.objects.all()
收据中的收据:
如果receive.expiration\u date您需要删除循环中的return语句
@periodic_task(run_every=crontab(minute='*/60'))
def delete_expired_receipts():
receipts = Receipt.objects.filter(expiry_date__lte=timezone.now())
if receipts:
receipts.delete()
return "Reciepts have been deleted"
return "No receipts"
您需要删除循环中的return语句
@periodic_task(run_every=crontab(minute='*/60'))
def delete_expired_receipts():
receipts = Receipt.objects.filter(expiry_date__lte=timezone.now())
if receipts:
receipts.delete()
return "Reciepts have been deleted"
return "No receipts"