apscheduler
比較簡單的可以用apscheduler來實現,apscheduler提供多種定時任務的調度。
如果要和flask或者django集成,那可以用對應的flask-apscheduler,django-apscheduler進行任務定時執行。
redis Queue,RQ
redies作爲nosql類型的存儲系統,同時也是提供RQ(Redis Queue)的python庫來進行隊列job和後臺worder處理的。
from redis import Redis
from rq import Queue
一般用法會導入這兩個組件,官網有非常完善的例子,主要內容提供一個極簡的任務處理隊列功能。
celery
https://docs.celeryproject.org/en/latest/
celery是一個分佈式的任務調度處理系統,大概結構如圖所示。
Celery的架構由三部分組成,消息中間件(message broker),任務執行單元(worker)和任務執行結果存儲(task result store)組成。
消息中間件和結果存儲可用redis,RabbitMQ來實現