django定时任务简单实现,
先安装相关
pip install django-apscheduler
setting里添加:
INSTALLED_APPS = [
'django_apscheduler',
]
执行migrate,形成2个关于job的表单
python manage.py migrate
app下建个文件写定时任务:
编辑文件:
from apscheduler.schedulers.background import BackgroundScheduler
from django_apscheduler.jobstores import DjangoJobStore, register_events, register_job
# 实例化调度器
scheduler = BackgroundScheduler()
# 调度器使用默认的DjangoJobStore()
#添加定时任务到数据库,执行一次就行
# scheduler.add_jobstore(DjangoJobStore(), 'default',)
#要每次创建覆盖原job,可以看另一个方法add__job,其中有replace的参数
# 执行这个任务
@register_job(scheduler, 'interval', id='test',, minutes=0.1)
def test():
# 具体要执行的代码
print('222')
# 注册定时任务并开始
#下面这句话失效了,先标注下
# register_events(scheduler)
#开始
# scheduler.start()
#关闭(数据库里的任务还在)
# scheduler.remove_job('test')
最后我是在urls里引入文件
urls.py
from app import cron_job