天天看點

使用APScheduler子產品使Django服務啟動時自動運作腳本(可設定定時運作)

Django搭建的伺服器一般都用作WEB網站進行通路,通常的形式是使用者通路網站或點選按鈕發送請求,Django檢測到請求後進行相應的視圖函數處理後傳回頁面給使用者。

但是,我們有時會需要有一些背景自動運作的任務,即使沒有使用者請求時也要自動運作,或者是定時運作或者是不斷運作,怎麼做呢?這裡用到一個子產品APScheduler這樣的一個庫,我們需要先安裝一下。這裡用的是2.1.2的版本。

pip install apscheduler==2.1.2
           

安裝完成後,在Django工程目錄下的urls.py檔案中引入這個子產品和寫好的想要被自動執行的函數

注:這個fnc方法可以定義在views.py檔案中,也可以直接把方法體寫在url.py中
from apscheduler.scheduler import Scheduler  
  
from app01.views import fnc  # 假設我要自動執行的函數是app01下的views.py中的fnc函數
           

引入好之後的具體代碼為:

sched = Scheduler()    # 執行個體化,固定格式
 
@sched.interval_schedule(seconds=60)    # 裝飾器,seconds=60意思為該函數為1分鐘運作一次
def mytask():  
    fnc()  
  
sched.start()    # 啟動該腳本
           

完成上面的這些步驟以後runserver就OK啦,是不是又get一個新技能~