flower 轉自:https://www.jianshu.com/p/4a408657ef76
flower的啟動
首先flower作為web頁面來管理celery後臺任務,和任務佇列是隔離的,也就是flower的執行與否並不會影響到任務佇列的真正執行,但是flower中可以通過API介面來管理celery中的任務執行。
在django工程目錄下面(和manage.py檔案在一個層級),具體的執行命令:
python manage.py celery flower --basic_auth=floweradmin:12345 --port=8083
由於本人在django工程中已經設定了 BROKER_URL
所以在上述的flower啟動命令中就沒有再次指定佇列url。
flower介面介紹
本片文章著重進行flower介面的介紹,主要是因為沒有一個完整的文件來進行介紹,所以下面是詳細介紹flower介面中各個頁面展示的內容,並且各個欄位的含義。
flower介面Dashboard
Dashboard 頁面是展示非同步任務佇列的主要情況,該頁面包括如下幾種狀態的任務:
- Active: 表示worker從佇列中獲取到任務,且正在執行的任務數
- Processed: 表示worker從佇列中獲取到任務的總資料量
- Failed: 表示worker從佇列中獲取到任務,且執行失敗了的(異常退出)
- Successed: 表示worker從佇列中獲取到任務,且執行成功了的
- Retried: 表示worker從佇列中獲取到任務,因為一些其他原因重新執行的數量
所以,上述這些數量的關係如下:
Processed = Active + Received + Failed + Successed + Retried
其中 Received 表示該任務分配到了worker中,但是還沒有被處理的任務數量
Worker Name 表示的是執行celery任務的worker名稱;
Status 表示的是該worker的狀態,包括 Online (線上) 、 Offline(離線),重啟flower程序,即可將Offline狀態的worker剔除掉;
Active / Processed / Failed / Successed
Load Average 表示系統在 1min / 5min / 15min 內的CPU平均負載(百分比)
Tasks
Tasks 頁面是展示所有worker接收到的任務的處理情況。下面對該表格中的做一些介紹
Tasks頁面- Name: 表示該任務的名稱,預設規則為該函式的路徑規則,例如
{模組名}.{檔名}.{函式名}
- UUID: 表示一個唯一字串ID用於表示該任務
- State: 表示該任務的狀態,包括: SUCCESS / FAILURE / STARTED / RECEIVED
- SUCCESS 表示該任務執行完畢且成功
- FAILURE 表示該任務執行失敗
- STARTED 表示該任務正在執行
- RECEIVED 表示該任務在worker中,只是被接收而已
- args: 表示該任務的列表引數
- kwargs: 表示該任務的字典引數
- Result: 表示該任務函式的返回結果
- Received: 表示該任務在worker接收到的時間
- Started: 表示該任務在worker開始執行的時間
- Runtime: 表示該任務在worker真正執行的耗時(單位:秒)
- Worker: 表示該任務所在的worker名稱
Broker
Broker 頁面展示的是celery連線訊息佇列的資訊,包括訊息佇列的訪問URL,下面的截圖展示的是連結的RabbitMQ,當然也可以連結Redis等。
Broker頁面- Name: 表示佇列的名稱
- Messages: 表示該佇列的訊息數量
- Unacked: 表示該佇列中還沒收到ack確認的訊息數量(該訊息可能處於 RECEIVED 或是 STARTED)
- Ready: 表示該佇列中還未分配到worker的訊息數量
- Consumers: 表示消費者數量(即worker數量)
- Idle since: 表示該佇列空閒的最初時間,否則為 N/A
Monitor
Monitor 頁面展示的是celery後臺任務的曲線展示狀況。
Monitor頁面作者:jshan
連結:https://www.jianshu.com/p/4a408657ef76
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。