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