优化启动代码

This commit is contained in:
mark.tian
2025-12-10 08:57:36 +08:00
parent fdb7e1f801
commit 32e1e8fd24

23
main.py
View File

@@ -17,17 +17,14 @@ from app.logger import LoggerManager, get_main_logger
LoggerManager.setup_logging()
logger = get_main_logger()
# Celery Worker 进程管理
celery_worker_process = None
def start_celery_worker():
"""启动 Celery Worker"""
try:
logger.info("🌿 启动Celery Worker...")
# 使用subprocess启动独立的celery worker进程
subprocess.run([
# 构建Worker启动命令 - 独立进程启动
worker_cmd = [
sys.executable, "-m", "celery",
"-A", "app.celery_app", # 指定celery应用模块
"worker",
@@ -35,10 +32,12 @@ def start_celery_worker():
'--pool=solo',
'--concurrency=1',
'--time-limit=300', # 5分钟任务超时
'--soft-time-limit=240', # 4分钟软超时
], check=True)
'--soft-time-limit=240' # 4分钟软超时
]
subprocess.run(worker_cmd, check=True)
except Exception as e:
logger.error(f"❌ Celery Worker 启动失败: {e}")
return None
def start_celery_beat():
@@ -51,14 +50,16 @@ def start_celery_beat():
import os
schedule_file = os.path.join(tempfile.gettempdir(), 'celerybeat-schedule')
# 使用subprocess启动独立的celery beat进程
subprocess.run([
# 构建Beat启动命令 - 独立进程启动
beat_cmd = [
sys.executable, "-m", "celery",
"-A", "app.celery_app", # 指定celery应用模块
"beat",
'--loglevel=info',
f'--schedule={schedule_file}',
], check=True)
f'--schedule={schedule_file}'
]
subprocess.run(beat_cmd, check=True)
except Exception as e:
logger.error(f"❌ Celery Beat 启动失败: {e}")