作為一種分佈式任務隊列,Celery廣泛應用於異步任務的處理。為了讓任務的管理和監控更加方便,Celery提供了一個Web界面工具——Flower。
一、Flower是什麼?
Flower 是一個基於 web 的 Celery 任務管理工具。使用 Flower,可以輕鬆地監控 Celery 任務的進度和日誌,並可以查看 Celery 集群的統計數據。它還支持任務隊列的監控和調度,除了任務完成情況的提醒外,還支持 Redbeat 的計劃任務管理等高級功能。
二、Flower的安裝和使用
使用pip安裝:
pip install flower
啟動Flower:
flower -A proj --port=5555
或
celery flower -A proj --address=0.0.0.0 --port=5555
其中`–port`是Flower監聽的端口,`–address`是Flower監聽的地址,`-A`參數指定Celery應用的名稱
三、Flower的Web界面
Flower的web界面可以在瀏覽器中訪問,如:http://localhost:5555
主要界面分為以下部分:
3.1、Dashboard
即概覽頁面,展示集群節點數量、Worker數量、任務執行情況等信息。此外,還可以手動添加新的Worker節點。同時,在每個Worker的名稱後面,有一個 +/- 操作按鈕,可以手動增加或移除Worker節點,完成節點調度。
3.2、Tasks
即任務頁面,它是 Flower 的核心部分,用戶可以通過此頁面查看每個任務的狀態、運行時間、入參、出參等詳細信息。此外,為了方便用戶查找和管理任務,該頁面還提供了任務過濾和排序功能。
3.3、Workers
即Worker節點頁面,它用來展示集群中運行的Worker節點,以及節點的狀態、執行任務的能力等信息。此外,該頁面還提供了 Worker 的監控和管理功能,例如殺掉 Worker 等。
3.4、Control
即控制面板頁面,它用來操作 Celery Worker,比如可以通過這個頁面手動殺死 Worker、查看 Worker 的狀態和日誌、設置日誌級別等常用操作。此外,還可以通過控制面板來管理任務隊列。
3.5、Broker
即消息隊列頁面,它可以展示系統中使用的全部消息隊列,以及它們的狀態和性能數據等信息。用戶可以掌握系統的發佈-訂閱模型,確保消息隊列順暢運行。
四、Flower的高級用法
4.1、設置用戶驗證
當 Flower 監控訪問權限比較開放時,不同用戶都可以通過 Flower 的 URL 訪問,此時可以通過設置用戶名和密碼來限制對 Flower 的訪問權限。可以通過以下方式設置用戶名和密碼:
flower --basic_auth=user:password
其中 user 是用戶名,password 是密碼,兩者之間用冒號 : 連接。
4.2、配置 TLS/SSL 安全連接
在安全環境下,通過 TLS/SSL 加密協議保證數據傳輸的安全。
首先需要生成私鑰和證書,使用以下命令
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
key.pem 是生成的私鑰,certificate.pem 是生成的證書。
接下來,使用以下命令啟動 Flower:
flower --certfile=certificate.pem --keyfile=key.pem
4.3、使用 Redbeat 管理計劃任務
Redbeat 是 Redislabs 提供的一個基於 Redis 存儲後台的 Celery 定時任務插件。Flower 可以使用 Redbeat 管理計劃任務。
需要在啟動時指定 beart 參數,示例如下:
flower -A proj --port=5555 --beat
然後通過 Tasks 頁面,可以添加、編輯和刪除任務。
五、總結
本文主要講解了Celery的監控和管理工具——Flower。介紹了Flower的安裝和使用、Web界面的組成、以及高級用法。
通過本文的介紹,相信讀者已經能夠掌握 Flower 的基本用法和一些高級用法,更加方便地完成異步任務的監控和管理。
原創文章,作者:NZIRE,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/334224.html