celery原理與元件

2022-07-02 23:57:12 字數 1010 閱讀 5245

1.celery 是乙個 基於python開發的 分布式非同步訊息任務佇列 ,通過它可以輕鬆的實現任務的非同步處理,如果你的業務場景中需要用到非同步任務,就可以考慮使用celery

2.你想對100臺機器執行一條批量命令,可能會花很長時間 ,但你不想讓你的程式等著結果返回,而是給你返回 乙個任務id,你過一段時間只需要拿著這個任務id就可以拿到任務執行結果, 在任務執行ing進行時,你可以繼續做其它的事情

3.celery 在執行任務時需要通過乙個訊息中介軟體來接收和傳送任務訊息,以及儲存任務結果, 一般使用rabbitmq or redis

celery 是乙個強大的分布式任務佇列,它可以讓任務的執行完全脫離主程式,甚至可以被分配到其他主機上執行。我們通常使用它來實現非同步任務(async task)和定時任務(crontab)

*** 簡單:一單熟悉了celery的工作流程後,配置和使用還是比較簡單的**

*** 高可用:當任務執行失敗或執行過程中發生連線中斷,celery 會自動嘗試重新執行任務**

*** 快速:乙個單程序的celery每分鐘可處理上百萬個任務**

*** 靈活: 幾乎celery的各個元件都可以被擴充套件及自定製**

1、任務(tasks)--使用者定義的函式,用於實現使用者的功能,比如執行乙個耗時很長的任務

2、中間介(broker)--用於存放tasks的地方,但是這個中間介需要解決乙個問題,就是可能需要存放非常非常多的tasks,而且要保證worker能夠從這裡拿取

3、執行者(worker)--用於執行tasks,也就是真正呼叫我們在tasks中定義的函式

4、儲存(backend)--把執行tasks返回的結果進行儲存,以供使用者檢視或呼叫

celery原理與元件

定義celery例項,需要的引數,1,例項名,2,任務發布位置,3,結果儲存位置 broker redis 任務存放的地方 backend redis 結果存放的地方 def add x,y return x y 1.啟動celery 1.1 單程序啟動celery celery a main wo...

celery動態任務元件Demo以及原理

celery是乙個基於python的分布式排程系統,文件在這 最近有個需求,想要動態的新增任務而不用重啟celery服務,找了一圈沒找到什麼好辦法 也有可能是文件沒看仔細 所以只能自己實現囉 為celery動態新增任務,首先我想到的是傳遞乙個函式進去,讓某個特定任務去執行這個傳遞過去的函式,就像這樣...

Celery 簡介與設定

celery 芹菜 是基於python開發的分布式任務佇列。它支援使用任務佇列的方式在分布的機器 程序 執行緒上執行任務排程。celery的架構由三部分組成,訊息中介軟體 message broker 任務執行單元 worker 和任務執行結果儲存 task result store 組成。訊息中介...