依赖下载
pip install django-apscheduler==0.5.1
配置
对于定时任务来说,应该单独拆成一个子应用(子模块)来使用。所以在当前项目下创建一个Jobs的子应用:
python manage.py startapp jobs
修改settings.py,安装django_apscheduler以及jobs应用。
INSTALLED_APPS = ['simpleui','django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','django_apscheduler', # here'jobs' # here]
由于django_apscheduler会自动创建相关的表来存储对应的定时任务,所以先进行自动建表:
python manage.py migrate
接下来就可以直接去定义注册定时任务:
# jobs/admin.pyfrom apscheduler.schedulers.background import BackgroundSchedulerfrom django_apscheduler.jobstores import DjangoJobStore, register_jobscheduler = BackgroundScheduler()scheduler.add_jobstore(DjangoJobStore(), "default")"""apschedule 支持cron表达式,以下参数代表每天0点运行该任务。更多的配置请查看参考资料apscheduler 触发器。"""try:@register_job(scheduler, 'cron', hour='0', minute='0', second='0', id='test')def test():print('test')scheduler.start()except Exception as e:print(e)
参考资料
- django-apscheduler doc
- apscheduler doc
- apscheduler 触发器Interval,date,cron。
