django中运行定时任务脚本

Posted xl2432

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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时直接后面跟上端口号.

以上是关于django中运行定时任务脚本的主要内容,如果未能解决你的问题,请参考以下文章

Django如何在启动服务时自动运行脚本(可设置定时运行)

django项目中遇到要实现定时任务

django-crontab定时任务

结合Django+celery二次开发定时周期任务

AWS + Django 定时任务

如何设置PowerShell脚本定时执行