使用APScheduler啟動Django服務時自動運行腳本(可設置定時運行)


  Django搭建的服務器一般都用作WEB網站進行訪問,通常的形式是用戶訪問網站或點擊按鈕發送請求,Django檢測到請求后進行相應的試圖函數處理后返回頁面給用戶。

  但是,我們有時會需要有一些后台自動運行的任務,即使沒有用戶請求時也要自動運行,或者是定時運行或者是不斷運行,怎么做呢?這里用到一個模塊APScheduler這樣的一個庫,我們需要先安裝一下。這里用的是2.1.2的版本,現在已經最新版升級到3.x.x,兩種版本有較大不同。向學習3版本的,請看另一篇博客:Python APSchedule安裝使用與源碼分析

pip install apscheduler==2.1.2  

 

  安裝完成后,在Django工程目錄下的urls.py文件中引入這個模塊和寫好的想要被自動執行的函數

from apscheduler.scheduler import Scheduler  
  
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一個新技能~

 
 
 
 
                   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM