Python中的任務調度庫
最近寫一個異步的小功能,不想一上來就用Celery重器,最開始使用的是Flask搭配concurrent.futures的 ThreadPoolExecutor功能來實現,可是執行效果並不如預期,後面改爲了FastAPI的Background Tasks功能,能實現想要的效果,可是也有缺陷,今天咱們來羅列下python中的受歡迎的任務調度庫有哪些。前端
任務調度庫
這裏的羅列只是所接觸到的其中的一小部分,若是你使用過更好的,歡迎留言python
列表
•schedule•python-crontab•APScheduler•Celery•Django Qdjango
schedule
schedule 是給人類使用的做業調度器,簡單、輕量級、無需配置、語法簡單,缺點是阻塞式調用、沒法動態添加或刪除任務。後端
python-crontab
python-crontab 是一個 Python 模塊,它提供對 cron 做業的訪問,並使咱們可以從 Python 程序中操做 crontab 文件。可以動態添加任務。微信
APScheduler
一款Python開發的定時任務工具,偏定時,可是不依賴於Linux系統的crontab系統定時,獨立運行,使用也很是普遍。app
Celery
Celery 是一個簡單,靈活,可靠的分佈式系統,用於處理大量消息,同時爲操做提供維護此類系統所需的工具, 也可用於任務調度。異步
Django Q
django的多處理分佈式任務隊列,有人拿這個和celery作對比,功能強大,能夠和Django無縫集成,我以前寫過一個工具用的就是這個,更輕量級,我的以爲很好用。缺點是隻能用在Django上。分佈式
如何選擇
看咱們的場景是實現小工具仍是要實現後端服務,若是是小工具的話,追求簡潔明瞭,儘量的減小依賴性的添加,若是是實現後端服務,咱們須要爲前端返回進度和狀態,這個時候用的最多的算是APScheduler和Celery了。工具
歡迎關注個人公衆號「追馬Linux」,原創技術文章第一時間推送。ui

引用連接
本文分享自微信公衆號 - 追馬Linux(zhuima_k8s)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。