Django使用django_apscheduler定时任务

在写这篇文章之前,我已经查阅了网上大部分的资料,包括官方的文档,但是还是没有解决我遇到的问题,现在还不容易解决了问题,特意记录一下。

问题:

任务无法启动。

完整教程:

安装第三方库:

pip install django-apscheduler

在settings.py文件的INSTALLED_APPS中加入:

INSTALLED_APPS = [
	'...'
	'django_apscheduler',  # 定时器
	]

继续加入:

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

新创建一个APP,在views.py中编写代码:

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

scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), "default")

@register_job(scheduler, "interval", seconds=3)
def test_job():
    time.sleep(4)
    print("I'm a test job!")
    # raise ValueError("Olala!")

register_events(scheduler)
scheduler.start()
print("Scheduler started!")

关键的一步,切记!!!
在项目的urls.py文件中导入刚才新建的app的views:

from apps.scripts import views

正常启动项目,定时任务被执行:

python manage.py runserver 0.0.0.0:8000

你可能感兴趣的:(个人学习,python基础)