1. 程式人生 > >django中運行定時任務腳本

django中運行定時任務腳本

後臺 模塊 執行 dsc register pre stat pps 實現

需要使用到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中運行定時任務腳本