Celery组件架构介绍
celery 組件
Celery 扮演生產(chǎn)者和消費(fèi)者的角色
Celery Beat : 任務(wù)調(diào)度器. Beat 進(jìn)程會讀取配置文件的內(nèi)容, 周期性的將配置中到期需要執(zhí)行的任務(wù)發(fā)送給任務(wù)隊(duì)列.
Celery Worker : 執(zhí)行任務(wù)的消費(fèi)者, 通常會在多臺服務(wù)器運(yùn)行多個消費(fèi)者, 提高運(yùn)行效率.
Broker : 消息代理, 隊(duì)列本身. 也稱為消息中間件. 接受任務(wù)生產(chǎn)者發(fā)送過來的任務(wù)消息, 存進(jìn)隊(duì)列再按序分發(fā)給任務(wù)消費(fèi)方(通常是消息隊(duì)列或者數(shù)據(jù)庫).
Producer : 任務(wù)生產(chǎn)者. 調(diào)用 Celery API , 函數(shù)或者裝飾器, 而產(chǎn)生任務(wù)并交給任務(wù)隊(duì)列處理的都是任務(wù)生產(chǎn)者.
Result Backend : 任務(wù)處理完成之后保存狀態(tài)信息和結(jié)果, 以供查詢.
celery架構(gòu)圖
產(chǎn)生任務(wù)的方式
- 發(fā)布者發(fā)布任務(wù)(WEB 應(yīng)用)
- 任務(wù)調(diào)度按期發(fā)布任務(wù)(定時任務(wù))
celery 依賴三個庫: 這三個庫, 都由 Celery 的開發(fā)者開發(fā)和維護(hù)
- billiard : 基于 Python2.7 的 multisuprocessing 而改進(jìn)的庫, 主要用來提高性能和穩(wěn)定性.
- librabbitmp : C 語言實(shí)現(xiàn)的 Python 客戶端
- kombu : Celery 自帶的用來收發(fā)消息的庫, 提供了符合 Python 語言習(xí)慣的, 使用 AMQP 協(xié)議的高級接口.
總結(jié)
以上是生活随笔為你收集整理的Celery组件架构介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Celery基本介绍
- 下一篇: Nginx的基本介绍反向代理