- 安装django-apscheduler
pip install django-apscheduler
- 注册django-apscheduler
在setting.py文件中注册django-apscheduler为APP
INSTALLED_APPS = [
......
'django_apscheduler', # 定时任务
]
- 数据库迁移
python manage.py migrate
迁移完成之后会生成两张表“django_apscheduler_djangojob和django_apscheduler_djangojobexecution”
4. 新建一个py文件,代码如下
from apscheduler.schedulers.background import BackgroundScheduler
from django_apscheduler.jobstores import DjangoJobStore, register_events, register_job
# 1.实例化调度器
scheduler = BackgroundScheduler()
# 2.调度器使用DjangoJobStore()
scheduler.add_jobstore(DjangoJobStore(), "default")
try:
# 3.设置定时任务,选择方式为interval,时间间隔为10s
# 另一种方式为每天固定时间执行任务,对应代码为:
# @register_job(scheduler, 'cron', hour='9', minute='30', second='10',id='task_time')
@register_job(scheduler, "interval", seconds=10, replace_existing=True)
def my_job():
# 这里写你要执行的任务
pass
# 4.注册定时任务
# register_events(scheduler) # 新版本已经不需要这一步了
# 5.开启定时任务
scheduler.start()
except Exception as e:
print(e)
# 有错误就停止定时器
scheduler.shutdown()
- 将这个py文件导入到主应用的urls.py中
from .core import scheduler
- 启动项目
python manage runserver