优化flower启动代码
This commit is contained in:
@@ -1,25 +1,50 @@
|
||||
#!/usr/bin/env python3
|
||||
"""启动Flower监控服务"""
|
||||
from celery import Celery
|
||||
from flower import command as flower_command
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
from celery_app import app
|
||||
from flower_config import FLOWER_CONFIG
|
||||
|
||||
def start_flower():
|
||||
"""启动Flower监控"""
|
||||
print("启动Flower监控服务...")
|
||||
print("监控地址: http://localhost:5555")
|
||||
print(f"监控地址: http://localhost:{FLOWER_CONFIG['port']}")
|
||||
print("按 Ctrl+C 停止服务")
|
||||
|
||||
# Flower配置
|
||||
flower_options = {
|
||||
'broker': 'redis://localhost:6379/0',
|
||||
'port': 5555,
|
||||
'basic_auth': None, # 可以设置用户名:密码,如 'admin:password'
|
||||
'inspect_timeout': 1000,
|
||||
'purge_offline_workers': 60,
|
||||
}
|
||||
|
||||
# 启动Flower
|
||||
flower_command.flower_command(flower_options)
|
||||
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__':
|
||||
start_flower()
|
||||
# 先尝试正常启动
|
||||
try:
|
||||
start_flower()
|
||||
except Exception as e:
|
||||
print(f"正常启动失败: {e}")
|
||||
print("尝试简单启动...")
|
||||
start_flower_simple()
|
||||
Reference in New Issue
Block a user