Celery兩種監控工具: 命令行實用工具和Web實時監控工具Flower
一。命令行工具
1)進入shell環境
celery -A myCeleryProj.app shell Python 3.7.1 (default, Jun 12 2020, 10:34:40) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) 進入含有Celery變量的python解釋器環境,Celery變量有當前的celery,app,Task 》 locals().keys() dict_keys(['app', 'celery', 'Task', 'chord', 'group', 'chain', 'chunks', 'xmap', 'xstarmap', 'subtask', 'signature', 'low', 'add', 'fall', '__builtins__']) > app <Celery __main__ at 0x7fce228aac88> 還可以執行任務 add taskB.delay()
2)status 在集群中列出激活的節點
celery -A celery_task.celery status
celery@VM_0_6_centos: OK
celery@VM_0_6_centos: OK
3)result 列出任務的執行結果
celery -A celery_task.celery result -t tasks.taskA
4)purse 從所有配置的任務隊列清除任務消息
celery -A celery_task.celery purge 指定清除的隊列 celery -A celery_task.celery purge -Q default, tasks_A 或排除指定任務隊列 celery -A celery_task.celery purge -X tasks_B 注意:此命令將從配置的任務隊列中清除所有的信息。不可撤銷,永久清除
5)inspect active 列出激活的任務
celery -A celery_task.celery inspect active
-> celery@VM_0_6_centos: OK
- empty -
-> celery@VM_0_6_centos: OK
- empty -
6)inspect scheduled 列出計划任務
celery -A celery_task.celery inspect scheduled
7)inspect registered 列出以注冊的任務
celery -A celery_task.celery inspect registered -> celery@VM_0_6_centos: OK * celery_task.tasks.add * celery_task.tasks.fall * celery_task.tasks.low -> celery@VM_0_6_centos: OK * celery_task.tasks.add * celery_task.tasks.fall * celery_task.tasks.low
8)inspect stats 列出worker的統計信息
celery -A celery_task.celery inspect stats
9)inspect query_task 通過ID獲取任務的信息
celery -A celery_task.celery inspect query_task
可以查詢多個
celery -A celery_task.celery inspect query_task id1 id2 ...
10) control enable_events/disable_events. 啟用/禁用事件
celery -A celery_task.celery control enable_events
celery -A celery_task.celery control disable_events
11)migrate 將任務有一個中間人轉移到另一個中間人上,試驗性命令,確保對數據進行備份
celery -A celery_task.celery migrate redis://localhost amqp://localhost
二。Web實時監控工具Flower
1)安裝
pip install flower
2)啟動
celery -A myCeleryProj.app flower 默認端口http://localhost:5555 也支持指定端口 celery -A myCeleryProj.app flower --port=5555 中間人URL指定 celery -A myCeleryProj.app flower --port=5555 --broker=redis://127.0.0.1:6379/0
指定地址
celery -A myCeleryProj.app flowere --address=0.0.0.0 --port=5555 --basic_auth=用戶名1:密碼1,用戶名2:密碼2
可結合supervisor進行服務部署