django中运行定时任务脚本

需要使用到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时直接后面跟上端口号.

posted @ 2019-05-11 12:02  星星,风,阳光  阅读(862)  评论(0编辑  收藏  举报