使用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一個新技能~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章