v0.3.20: 每日汇报系统 — 每天8点自动收集前一日数据并推送汇总报告
新增:
- src/services/daily-report.service.ts (核心服务: 数据收集/报告生成/格式化/调度器)
- API: GET/PUT daily-report/config, GET daily-report/preview, POST daily-report/test, GET daily-report/last-run
- 前端: 侧边栏"📊 每日汇报"菜单 + SystemConfig.vue 配置面板(时间/内容开关/预览/测试发送)
- main.ts: 每60秒检查调度, 08:00-08:04 窗口内运行
报告内容: 搜索统计/转存统计(成功率)/各网盘容量和活跃状态/用户数
This commit is contained in:
@@ -183,6 +183,23 @@ async function start(): Promise<void> {
|
||||
setInterval(() => { refreshAllStorageInfo().catch(err => console.error('[Storage] Refresh error:', err.message)); }, STORAGE_REFRESH_INTERVAL);
|
||||
setTimeout(() => { refreshAllStorageInfo().catch(err => console.error('[Storage] Initial refresh error:', err.message)); }, 60000);
|
||||
|
||||
|
||||
// Daily Report scheduler — check every 60 seconds
|
||||
const DAILY_REPORT_CHECK_INTERVAL = 60 * 1000;
|
||||
setInterval(() => {
|
||||
try {
|
||||
const { runDailyReportIfScheduled } = require('./services/daily-report.service');
|
||||
runDailyReportIfScheduled().catch(err => console.error('[DailyReport] Scheduler error:', err.message));
|
||||
} catch {}
|
||||
}, DAILY_REPORT_CHECK_INTERVAL);
|
||||
// Also run once 30s after startup (catch case where server starts at 08:00-08:05)
|
||||
setTimeout(() => {
|
||||
try {
|
||||
const { runDailyReportIfScheduled } = require('./services/daily-report.service');
|
||||
runDailyReportIfScheduled().catch(err => console.error('[DailyReport] Initial check error:', err.message));
|
||||
} catch {}
|
||||
}, 30000);
|
||||
|
||||
const server = app.listen(config.port, () => {
|
||||
console.log(`[Server] CloudSearch Backend running on port ${config.port} (${config.nodeEnv})`);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user