celery組件&架構介紹

celery 組件

Celery 扮演生產者和消費者的角色

Celery Beat : 任務調度器. Beat 進程會讀取配置文件的內容, 週期性的將配置中到期需要執行的任務發送給任務隊列.

Celery Worker : 執行任務的消費者, 通常會在多臺服務器運行多個消費者, 提高運行效率.

Broker : 消息代理, 隊列本身. 也稱爲消息中間件. 接受任務生產者發送過來的任務消息, 存進隊列再按序分發給任務消費方(通常是消息隊列或者數據庫).

Producer : 任務生產者. 調用 Celery API , 函數或者裝飾器, 而產生任務並交給任務隊列處理的都是任務生產者.

Result Backend : 任務處理完成之後保存狀態信息和結果, 以供查詢.

celery架構圖
在這裏插入圖片描述

產生任務的方式

  • 發佈者發佈任務(WEB 應用)
  • 任務調度按期發佈任務(定時任務)

celery 依賴三個庫: 這三個庫, 都由 Celery 的開發者開發和維護

  • billiard : 基於 Python2.7 的 multisuprocessing 而改進的庫, 主要用來提高性能和穩定性.
  • librabbitmp : C 語言實現的 Python 客戶端
  • kombu : Celery 自帶的用來收發消息的庫, 提供了符合 Python 語言習慣的, 使用 AMQP 協議的高級接口.

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