如果我的问题太基础,请道歉,但不幸的是,我无法理解如何从官方文档/教程中正确使用周期性任务。
我想每300秒(5分钟)创建一个周期性任务执行功能,删除模型Trades
中存在时间超过300秒的所有对象。
所以我只是在Project / Home目录下创建了一个名为tasks.py
的文件(目录由models.py,urls.py,views.py等组成。)
我添加了这个脚本:
from celery.decorators import periodic_task
from Home.models import Trades
import datetime
@periodic_task(run_every=300) # Run every 5 minutes.
def remove_old():
for i in Trades.objects.all():
time_now = timezone.now()
time_generated = i.generation_date
time_elapsed = time_now - time_generated
if int(time_elapsed.total_seconds()) > 300: # If an object has existed longer than 5 minutes, It must be deleted.
i.remove()
出于某种原因,5分钟后没有任何对象被删除,即使它们是昨天生成的,我也确定它们超过300秒。
问题是什么?我的代码有什么用吗?