Django如何在啟動服務時自動運行腳本(可設置定時運行)
阿新 • • 發佈:2018-05-20
imp 裝飾 AR 自動運行 即使 模塊 urls.py文件 步驟 sta
Django搭建的服務器一般都用作WEB網站進行訪問,通常的形式是用戶訪問網站或點擊按鈕發送請求,Django檢測到請求後進行相應的試圖函數處理後返回頁面給用戶。
但是,我們有時會需要有一些後臺自動運行的任務,即使沒有用戶請求時也要自動運行,或者是定時運行或者是不斷運行,怎麽做呢?這裏用到一個模塊APScheduler這樣的一個庫,我們需要先安裝一下。
pip install apscheduler==2.1.2
安裝完成後,在Django工程目錄下的urls.py文件中引入這個模塊和寫好的想要被自動執行的函數
from apscheduler.scheduler importScheduler from app01.views import aaa#假設我要執行的函數時app01項目下的views.py中的aaa函數
註:這個aaa方法可以定義在views.py文件中,也可以直接把方法體寫在url.py中
引入好之後的具體代碼為:
sched = Scheduler() #實例化,固定格式 @sched.interval_schedule(seconds=60) #裝飾器,seconds=60意思為該函數為1分鐘運行一次 def mytask(): aaa() sched.start() #啟動該腳本
完成上面的這些步驟以後runserver就OK啦,是不是又get一個新技能~
Django如何在啟動服務時自動運行腳本(可設置定時運行)