幾種消息隊列,定時觸發和異步事件處理的方案

apscheduler

比較簡單的可以用apscheduler來實現,apscheduler提供多種定時任務的調度。

如果要和flask或者django集成,那可以用對應的flask-apscheduler,django-apscheduler進行任務定時執行。

redis Queue,RQ

http://python-rq.org/

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來實現

 

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