定時任務模塊——APScheduler


一、概念:

  python定時任務框架,基於日期,固定時間間隔,crontab類型的任務,並且可以持久化任務,並能以deamon守護方式運行任務

二、簡介:

  安裝:pip install apscheduler

  其中7中調度器:

  1. BackgroundScheduler:如果希望調度器在后台執行使用
  2. BlockingScheduler:當調度器是應用唯一要運行的任務時使用
  3. AsyncIOScheduler:使用asyncio模塊(一個異步框架)一起使用
  4. GeventScheduler:使用gevent(高新能的python並發框架)作為IO模型,和GeventExecutor配合使用
  5. TornadoScheduler:使用Tornado(一個web框架)的IO模型,用ioloop.add_timeout 完成定時喚醒
  6. TwistedScheduler:
  7. QtScheduler:如果是一個qt應用,需使用QTimer完成定時喚醒

每種調度器中,都有四個組件

觸發器(trigger)觸發器包含調度邏輯,描述一個任務何時被觸發,觸發器內置三種方式。

  1. date:基礎觸發器,特定的時間點觸發,只執行一次;
  2. interval:固定時間間隔觸發,可以執行多次;

  3. cron:在特定時間周期性的觸發,可以執行多次;每次任務執行的間隔時間可以不一樣;

任務/作業存儲(job store)指定了作業被存放的位置
1.默認情況下保存在內存
2.也可以保存在數據庫中,如MySql/MongoDB
3.調度器之間不能共享作業存儲

執行器(executor):執行器是將指定的作業(作業函數)提交到線程池,當任務完成時,執行器通知調度器觸發相應的事件。
1.ProcessPoolExecutor(默認10個)
2.ThreadPoolExecutor(默認10個)


調度器(scheduler):


三、原理

  觸發器(trigger),作業存儲(job store),執行器(executor),調度器(scheduler)

  

四、如何使用

五、實例演示

BlockingScheduler

以阻塞進程的形式,每秒執行一次

 


免責聲明!

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



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