需要使用到django_apscheduler模块,因此先安装:
pip install django-apscheduler
然后在工程的settings.py
文件中的INSTALLED_APPS
模块加入:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_apscheduler',
......
]
然后在app的views.py
文件中实现调用的函数:
from apscheduler.schedulers.background import BackgroundScheduler
from django_apscheduler.jobstores import DjangoJobStore, register_events, register_job
import logging
logging.basicConfig()
def task_test():
print "***************************"
def RunDaemonService():
scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), "default")
try:
# 监控任务
scheduler.add_job(task_test, 'interval', seconds=5, id='test_job')
# 调度器开始
scheduler.start()
except Exception as e:
print e
# 报错则调度器停止执行
scheduler.shutdown()
然后还需要在工程的urls.py
文件中引入该app:
from testapp.views import RunDaemonService
最后运行整个项目:
python manage.py runserver
这样在启动服务时这个定时任务就会运行,可以为我们的工程提供后台运行服务支撑.
ps:
如果想让django不以8000为http端口,可以在runserver时直接后面跟上端口号.