50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
#!/usr/bin/env python3
|
|
"""启动Flower监控服务"""
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
from celery_app import app
|
|
from flower_config import FLOWER_CONFIG
|
|
|
|
def start_flower():
|
|
"""启动Flower监控"""
|
|
print("启动Flower监控服务...")
|
|
print(f"监控地址: http://localhost:{FLOWER_CONFIG['port']}")
|
|
print("按 Ctrl+C 停止服务")
|
|
|
|
try:
|
|
# 使用celery_app中的app对象启动flower
|
|
app.worker_main(['flower',
|
|
'--broker', app.conf.broker_url,
|
|
'--port', str(FLOWER_CONFIG['port']),
|
|
'--address', FLOWER_CONFIG['address'],
|
|
'--inspect_timeout', str(FLOWER_CONFIG['inspect_timeout']),
|
|
'--purge_offline_workers', str(FLOWER_CONFIG['purge_offline_workers']),
|
|
'--enable_events',
|
|
'true' if FLOWER_CONFIG['enable_events'] else 'false'])
|
|
except KeyboardInterrupt:
|
|
print("\nFlower监控服务已停止")
|
|
except Exception as e:
|
|
print(f"启动Flower失败: {e}")
|
|
print("请检查:")
|
|
print("1. Redis是否正在运行 (redis-server)")
|
|
print("2. 端口5555是否被占用")
|
|
print("3. Celery worker是否正在运行")
|
|
|
|
def start_flower_simple():
|
|
"""简单启动方式"""
|
|
print("尝试简单启动Flower...")
|
|
try:
|
|
# 使用celery_app中的app对象简单启动
|
|
app.worker_main(['flower', '--broker=redis://localhost:6379/0', '--port=5555', '--address=127.0.0.1'])
|
|
except Exception as e:
|
|
print(f"简单启动失败: {e}")
|
|
|
|
if __name__ == '__main__':
|
|
# 先尝试正常启动
|
|
try:
|
|
start_flower()
|
|
except Exception as e:
|
|
print(f"正常启动失败: {e}")
|
|
print("尝试简单启动...")
|
|
start_flower_simple() |