apscheduler模塊的用法

       apscheduler提供了基於日期、時間間隔、以及crontab類型的任務,我們可以在主程序的運行過程中快速增加新任務或者刪除舊任務,如果把任務存儲在數據庫中,那麼任務的狀態會被保存。當調度器重啓時,不必重新添加任務,保存起來的任務會恢復原狀態繼續執行。

apscheduler有幾個重要的組件:

觸發器(triggers):觸發器包含調度邏輯,描述一個任務何時被觸發,按照日期、時間間隔、cron表達式,三種方式觸發。每個作業都有其自己的觸發器,除了初始配置之外,觸發器是完全無狀態的。

任務存儲器(job stores):任務存儲器指定了作業被存放的位置,默認情況下任務保存在內存,也可以將任務保存在數據庫中,當任務被保存在數據庫中,它會被序列化;當被重新加載到內存中,會被反序列化。任務存儲器充當保存、加載、更新和查找任務的中間商。在調度器之間不能共享任務存儲。

執行器(executors):執行器是將指定的任務(調用函數)放到線程池或進程池當中去運行,當任務完成時,執行器通知調度器觸發相應的事件

調度器(schedulers):任務調度器,屬於控制角色,通過它配置任務存儲器、執行器和觸發器,添加、修改和刪除任務。調度器協調觸發器、任務存儲器、執行器的運行,通常只有一個調度程序運行在應用程序中,開發人員通常不需要直接處理任務存儲器、執行器或者觸發器,配置任務存儲器和執行器都是通過調度器來完成的。

 

配置一個任務,就要設置一個任務觸發器。觸發器可以設定任務運行的週期、次數和時間。APScheduler有三種內置的觸發器:

  • date 日期:觸發任務運行的具體日期
  • interval 間隔:觸發任務運行的時間間隔
  • cron 週期:觸發任務運行的週期

一個任務也可以設定多種觸發器,比如,可以設定同時滿足所有觸發器條件而觸發,或者滿足一項即可觸發。

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