Appearance
Python Monitor 监控
路由:app/api/v1/monitor.py
服务:app/services/monitor_service.py
调度:app/services/scheduler_service.py(APScheduler)
API 前缀:/api/v1/monitor/*
当前范围:操作日志、登录日志、定时任务 + 任务执行日志(与 Java / 前端 admin 对齐)。
端点
| 资源 | 端点 | 权限示例 |
|---|---|---|
| OperLogs | GET /operlogs,DELETE /operlogs/{id},DELETE /operlogs/clean | monitor:operlog:list/delete |
| Logininfor | GET /logininfor,DELETE /logininfor/{id},DELETE /logininfor/clean | monitor:logininfor:list/delete |
| Jobs | GET/POST /jobs,GET/PUT/DELETE /jobs/{id},POST /jobs/{id}/run | monitor:job:* |
| Job Logs | GET /job-logs,DELETE /job-logs/{log_id},DELETE /job-logs/clean | monitor:job:list 等 |
操作日志写入
两种方式(与 Java @Log + AOP 互补):
OperLogMiddleware(app/middleware/oper_log.py)
对POST/PUT/DELETE且路径以/api/v1/system/或/api/v1/monitor/jobs开头的请求写sys_oper_log(排除/database/init)。@oper_log装饰器(app/services/oper_log.py)
可用于个别路由补充。
定时任务
- 引擎:APScheduler 后台调度(非 Quartz,cron 表达式与 Java 种子兼容)
- 启动:
lifespan中job_scheduler.init_from_db();缺表时 WARN,不阻断 - 执行目标:
invokeTarget如demoTask.run→app/services/demo_task.py - init 后:
database_init会再次init_from_db重载任务
菜单位置
种子将操作日志 / 登录日志 / 定时任务挂在 系统管理 下,路由仍为 /monitor/*,权限仍为 monitor:*。