celery 原理和元件
Celery介紹
https://www.cnblogs.com/xiaonq/p/11166235.html#i1
1.1 celery應用舉例
- Celery 是一個 基於python開發的分散式非同步訊息任務佇列,通過它可以輕鬆的實現任務的非同步處理,如果你的業務場景中需要用到非同步任務,就可以考慮使用celery
- 你想對100臺機器執行一條批量命令,可能會花很長時間 ,但你不想讓你的程式等著結果返回,而是給你返回 一個任務ID,你過一段時間只需要拿著這個任務id就可以拿到任務執行結果, 在任務執行ing進行時,你可以繼續做其它的事情
- Celery 在執行任務時需要通過一個訊息中介軟體來接收和傳送任務訊息,以及儲存任務結果, 一般使用rabbitMQ or Redis
1.2 Celery有以下優點
- 簡單:一單熟悉了celery的工作流程後,配置和使用還是比較簡單的
- 高可用:當任務執行失敗或執行過程中發生連線中斷,celery 會自動嘗試重新執行任務
- 快速:一個單程序的celery每分鐘可處理上百萬個任務
- 靈活: 幾乎celery的各個元件都可以被擴充套件及自定製
1.3 Celery 特性
- 方便檢視定時任務的執行情況, 如 是否成功, 當前狀態, 執行任務花費的時間等.
- 可選 多程序, Eventlet 和 Gevent 三種模型併發執行.
- Celery 是語言無關的.它提供了python 等常見語言的介面支援.
2.celery 元件
https://www.cnblogs.com/xiaonq/p/11166235.html#i2
2.1 Celery 扮演生產者和消費者的角色
-
-
Celery Beat : 任務排程器. Beat 程序會讀取配置檔案的內容, 週期性的將配置中到期需要執行的任務傳送給任務佇列.
-
Celery Worker : 執行任務的消費者, 通常會在多臺伺服器執行多個消費者, 提高執行效率.
-
Broker : 訊息代理, 佇列本身. 也稱為訊息中介軟體. 接受任務生產者傳送過來的任務訊息, 存進佇列再按序分發給任務消費方(通常是訊息佇列或者資料庫).
-
Producer : 任務生產者. 呼叫 Celery API , 函式或者裝飾器, 而產生任務並交給任務佇列處理的都是任務生產者.
-
Result Backend : 任務處理完成之後儲存狀態資訊和結果, 以供查詢.
-
2.2 celery架構圖
2.3 產生任務的方式
-
釋出者釋出任務(WEB 應用)
-
任務排程按期釋出任務(定時任務)
2.4 celery 依賴三個庫: 這三個庫, 都由 Celery 的開發者開發和維護.
-
billiard :
基於 Python2.7 的 multisuprocessing 而改進的庫, 主要用來提高效能和穩定性. -
librabbitmp :
C 語言實現的 Python 客戶端 -
kombu :
Celery 自帶的用來收發訊息的庫, 提供了符合 Python 語言習慣的, 使用 AMQP 協議的高階藉口.
相關推薦
celery 原理和元件
Celery介紹 https://www.cnblogs.com/xiaonq/p/11166235.html#i1 1.1 celery應用舉例 Celery 是一個 基於python開發的分散式非同步訊息任務佇列,通過它可以輕鬆的實現任務的非同步處理,如果你的業務場景中需要用到
01.celery原理與元件
1.Celery介紹 參考部落格:https://www.cnblogs.com/xiaonq/p/11166235.html#i1 1.1 celery應用舉例
celery原理與元件
1.Celery介紹 https://www.cnblogs.com/xiaonq/p/11166235.html#i1 1.1 celery應用舉例 Celery 是一個 基於python開發的分散式非同步訊息任務佇列,通過它可以輕鬆的實現任務的非同步處理,如果你的業務場景中需要
1911A:celery原理與元件
1.Celery介紹 https://www.cnblogs.com/xiaonq/p/11166235.html#i1 1.1 celery應用舉例 Celery 是一個 基於python開發的 分散式非同步訊息任務佇列 ,通過它可以輕鬆的實現任務的非同步處理,如果你的業務場景
Django-celery非同步原理與元件(1)
1.celery配置與基本使用 1.1安裝相關軟體包 pip3 install Django==2.0.4 pip3 install celery==4.3.0
Java AQS原理和AQS的同步元件總結
AQS 簡單介紹 AQS 的全稱為 AbstractQueuedSynchronizer ,翻譯過來的意思就是抽象佇列同步器。這個類在 java.util.concurrent.locks 包下面。
SPI機制的原理和應用
前言 SPI ,全稱為 Service Provider Interface,是一種服務發現機制。它通過在ClassPath路徑下的META-INF/services資料夾查詢檔案,自動載入檔案裡所定義的類。
深入剖析Linux IO原理和幾種零拷貝機制的實現
前言 零拷貝(Zero-copy)技術指在計算機執行操作時,CPU 不需要先將資料從一個記憶體區域複製到另一個記憶體區域,從而可以減少上下文切換以及 CPU 的拷貝時間。它的作用是在資料報從網路裝置到使用者程式空間傳遞的
websoket原理和實戰
websoket原理和實戰 概述 專案地址:github.com/longxiaonan… 專案包結構 兩個包: com.javasea.web.websocket.springb.websocket
分析MySQL複製以及調優原理和方法
一. 簡介 MySQL自帶複製方案,帶來好處有: 資料備份。 負載均衡。 分散式資料。
【原理】元資料管理原理和圖資料庫應用
一、背景 大資料挑戰 大資料時代,餓了麼面臨資料管理、資料使用、資料問題等多重挑戰。具體可以參考下圖:
Python unittest工作原理和使用過程解析
這篇文章主要介紹了Python unittest工作原理和使用過程解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
php生成短網址/短連結原理和用法例項分析
本文例項講述了php生成短網址/短連結原理和用法。分享給大家供大家參考,具體如下:
Python celery原理及執行流程解析
celery簡介 celery是一個基於分散式訊息傳輸的非同步任務佇列,它專注於實時處理,同時也支援任務排程。它的執行單元為任務(task),利用多執行緒,如Eventlet,gevent等,它們能被併發地執行在單個或多個職程伺服器
RocketMQ入門到入土(一)新手也能看懂的原理和實戰!
學任何技術都是兩步驟: 搭建環境 helloworld 我也不例外,直接搞起來。 一、RocketMQ的安裝
Ceph——Ceph架構和元件
Ceph儲存架構 Ceph儲存叢集由幾個不同的軟體守護程序組成,每個守護程序負責Ceph的一個獨特功能並將值新增到相應的元件中。每個守護程序彼此獨立。
Arrays.sort 和 Collections.sort 實現原理和區別
Collection和Collections區別 java.util.Collection 是一個集合介面。它提供了對集合物件進行基本操作的通用介面方法。
詳解Vue中的MVVM原理和實現方法
下面由我阿巴阿巴的詳細走一遍Vue中MVVM原理的實現,這篇文章大家可以學習到:
單元測試框架的原理和實現(模仿google test)
2020/7/14 學習內容: 單元測試框架的編寫與實現,單元測試框架屬於測試的一部分,驗證程式的某一部分邏輯是否正確。
ThreadLocal的實現原理和記憶體洩漏的問題
一、概述 在2017京東校園招聘筆試題中遇到了描述ThreadLocal的實現原理和記憶體洩漏的問題,之前看過ThreadLocal的實現原理,但是網上有很多文章將的很亂,其中有很多文章將ThreadLocal與執行緒同步機制混為一談,