diff --git a/platform/backend/app/api/system.py b/platform/backend/app/api/system.py index a1ab64c..5d2153c 100644 --- a/platform/backend/app/api/system.py +++ b/platform/backend/app/api/system.py @@ -185,25 +185,17 @@ def get_scheduler_status(): @router.get("/modules/status", dependencies=[Depends(get_current_user)]) def get_modules_status(): today_str = date.today().isoformat() - module_logs = { - "creator": { - "key": "🤖 内容创作引擎", - "log": LOGS_DIR / f"creator_{today_str}.log", - "config_file": PROJECT_ROOT / "automation" / "data" / "outlines" / today_str, - }, - "optimizer": { - "key": "🔍 内容优化器", - "log": LOGS_DIR / f"optimizer_{today_str}.log", - "config_file": PROJECT_ROOT / "automation" / "data" / "drafts" / today_str, - }, - "collector": { - "key": "📡 内容收集器", - "log": LOGS_DIR / f"collector_{today_str}.log", - "config_file": PROJECT_ROOT / "automation" / "data", - }, + log_based: dict = { + "scheduled_collect": {"name": "📡 内容采集", "log": LOGS_DIR / f"collector_{today_str}.log"}, + "scheduled_sync": {"name": "🔄 指标同步", "log": LOGS_DIR / f"sync_{today_str}.log"}, + "scheduled_generate": {"name": "🤖 内容创作", "log": LOGS_DIR / f"creator_{today_str}.log"}, + "scheduled_optimize": {"name": "🔍 内容优化", "log": LOGS_DIR / f"optimizer_{today_str}.log"}, + "scheduled_optimize_sources": {"name": "📡 信息源优化", "log": LOGS_DIR / f"optimizer_sources_{today_str}.log"}, + "scheduled_metrics_sync": {"name": "📊 指标同步", "log": LOGS_DIR / f"metrics_sync_{today_str}.log"}, } + jobs = {j.id: j for j in scheduler.get_jobs()} modules = [] - for mod_id, cfg in module_logs.items(): + for mod_id, cfg in log_based.items(): log_file = cfg["log"] last_run = None task_count = 0 @@ -215,10 +207,11 @@ def get_modules_status(): task_count = content.count("完成") + content.count("success") + content.count("SUCCESS") total = task_count + content.count("失败") + content.count("failed") + content.count("ERROR") success_rate = round(task_count / total * 100) if total > 0 else None + status = "running" if log_file.exists() else ("idle" if mod_id in jobs else "stopped") modules.append({ "id": mod_id, - "title": cfg["key"], - "status": "running" if log_file.exists() else "stopped", + "title": cfg["name"], + "status": status, "last_run": last_run or "从未运行", "task_count": task_count, "success_rate": success_rate, diff --git a/platform/frontend/index.html b/platform/frontend/index.html index c3b2f51..bfa7ba0 100644 --- a/platform/frontend/index.html +++ b/platform/frontend/index.html @@ -37,7 +37,7 @@
-

+

系统概览

@@ -80,13 +80,13 @@
-

+

模块状态 - + 定时任务: - {{ schedulerStatus }} + {{ schedulerRunning ? '运行中' : '未启动' }}

@@ -214,10 +214,7 @@ this.modules = data.modules || []; const s = data.scheduler || {}; this.schedulerRunning = s.running; - this.schedulerStatus = (s.running ? '运行中' : '未启动'); - if (s.jobs && s.jobs.length) { - this.schedulerStatus += ' · ' + s.jobs.length + ' 个任务'; - } + this.schedulerStatus = (s.running ? `运行中 · ${s.jobs ? s.jobs.length : 0} 个任务` : '未启动'); } } catch (e) { console.error('获取模块状态失败:', e);