diff --git a/main.py b/main.py index 32b94bb..30a022d 100644 --- a/main.py +++ b/main.py @@ -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}")