diff --git a/backend/app/api/simulation.py b/backend/app/api/simulation.py index 126732c5..48664540 100644 --- a/backend/app/api/simulation.py +++ b/backend/app/api/simulation.py @@ -307,8 +307,9 @@ def _check_simulation_prepared(simulation_id: str) -> tuple: # - running: 正在运行,说明准备早就完成了 # - completed: 运行完成,说明准备早就完成了 # - stopped: 已停止,说明准备早就完成了 + # - paused: 手动停止后会写入 paused,配置仍然可复用 # - failed: 运行失败(但准备是完成的) - prepared_statuses = ["ready", "preparing", "running", "completed", "stopped", "failed"] + prepared_statuses = ["ready", "preparing", "running", "completed", "stopped", "paused", "failed"] if status in prepared_statuses and config_generated: # 获取文件统计信息 profiles_file = os.path.join(simulation_dir, "reddit_profiles.json") @@ -1599,6 +1600,17 @@ def start_simulation(): }), 400 logger.info(f"启用图谱记忆更新: simulation_id={simulation_id}, graph_id={graph_id}") + + existing_run_state = SimulationRunner.get_run_state(simulation_id) + if existing_run_state and existing_run_state.runner_status.value not in ["starting", "running"]: + logger.info( + f"清理已结束的旧运行记录后重新启动: " + f"simulation_id={simulation_id}, runner_status={existing_run_state.runner_status.value}" + ) + cleanup_result = SimulationRunner.cleanup_simulation_logs(simulation_id) + if not cleanup_result.get("success"): + logger.warning(f"清理旧运行记录时出现警告: {cleanup_result.get('errors')}") + force_restarted = True # 启动模拟 run_state = SimulationRunner.start_simulation( diff --git a/backend/scripts/run_parallel_simulation.py b/backend/scripts/run_parallel_simulation.py index 9ec72f72..a6411931 100644 --- a/backend/scripts/run_parallel_simulation.py +++ b/backend/scripts/run_parallel_simulation.py @@ -608,7 +608,7 @@ def load_config(config_path: str) -> Dict[str, Any]: # 需要过滤掉的非核心动作类型(这些动作对分析价值较低) -FILTERED_ACTIONS = {'refresh', 'sign_up'} +FILTERED_ACTIONS = {'refresh', 'sign_up', 'do_nothing'} # 动作类型映射表(数据库中的名称 -> 标准名称) ACTION_TYPE_MAP = { diff --git a/frontend/src/components/Step3Simulation.vue b/frontend/src/components/Step3Simulation.vue index 5b0f968c..d62c3117 100644 --- a/frontend/src/components/Step3Simulation.vue +++ b/frontend/src/components/Step3Simulation.vue @@ -106,9 +106,9 @@