加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Django中使用django-apscheduler执行定时任务

发布时间:2020-12-15 17:13:56 所属栏目:大数据 来源:网络整理
导读:关于apscheduler使用,请参考文章 :python 定时任务APScheduler 使用介绍 安装模块 pip?install?django-apscheduler 使用 1.?在django项目修改settings.py文件,在INSTALLED_APPS中加入django-apscheduler应用: INSTALLED_APPS?=?[????......????'django_a

关于apscheduler使用,请参考文章 :python 定时任务APScheduler 使用介绍

安装模块

pip?install?django-apscheduler

使用

1.?在django项目修改settings.py文件,在INSTALLED_APPS中加入django-apscheduler应用:

INSTALLED_APPS?=?[
????......
????'django_apscheduler',#定时执行任务
]

APSCHEDULER_DATETIME_FORMAT?=??"N?j,?Y,?f:s?a"??#?Default

2.?执行迁移命令(创建两张表:django_apscheduler_djangojob和django_apscheduler_djangojobexecution):

python?manage.py?makemigrations
python?manage.py?migrate

3.?在任意一个view.py加入引用写好的scheduler。

如下图所示:新建task.py

from?apscheduler.schedulers.background?import?BackgroundScheduler
from?django_apscheduler.jobstores?import?DjangoJobStore,?register_events,?register_job

#开启定时工作
try:
????#?实例化调度器
????scheduler?=?BackgroundScheduler()
????#?调度器使用DjangoJobStore()
????scheduler.add_jobstore(DjangoJobStore(),?"default")
????#?设置定时任务,选择方式为interval,时间间隔为10s
????#?另一种方式为周一到周五固定时间执行任务,对应代码为:
????#?@register_job(scheduler,?'cron',?day_of_week='mon-fri',?hour='8',?minute='30',?second='10',id='task_time')
????@register_job(scheduler,"interval",?seconds=10)
????def?my_job():
????????#?这里写你要执行的任务
????????pass
????register_events(scheduler)
????scheduler.start()
except?Exception?as?e:
????print(e)
????#?有错误就停止定时器
????scheduler.shutdown()

然后在任意一个views.py中引入scheduler,使得每次启动Django框架时,定时任务都会同时启动。

from?task?import?scheduler

官方文档:https://github.com/jarekwg/django-apscheduler

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读