feat(storage): 引入任务日志记录功能
- 新增 MongoLogRepository 类用于记录任务执行日志 - 在 FlowRunner 中集成日志记录,跟踪流程执行步骤 - 记录登录与业务流程的开始、成功、错误与中止状态 - 支持记录 XML 来源与快照(超长内容自动截断)- 扩展 README 文档说明日志字段与使用方式 -优化分页抓取逻辑,返回页面与记录统计数据 - 统一存储接口,暴露 MongoDB 客户端与数据库属性 - 增加步骤计数与执行时间统计功能
This commit is contained in:
21
README.md
21
README.md
@@ -243,6 +243,27 @@ python main.py
|
||||
- `<excel_extract>` 用于声明需下载并解析 Excel 文件,当前实现会给出提示,具体逻辑可在 `FlowRunner._handle_excel_extract` 自行扩展。
|
||||
- `MongoRepository.save_records` 会按照 `flow.unique_keys` 与 `unique_columns` 控制去重策略。
|
||||
|
||||
## 任务日志
|
||||
|
||||
每次执行登录流程或业务流程都会写入 MongoDB 的 `task_logs` 集合,记录执行状态与关键步骤,方便排查问题。
|
||||
|
||||
- 基础字段:
|
||||
- `_id`:UUID,全局唯一的任务编号。
|
||||
- `site_id` / `flow_id`:对应模板中的站点与流程。
|
||||
- `status`:`start`、`success`、`error`、`aborted`。
|
||||
- `started_at` / `ended_at`:UTC 时间戳,`duration_ms` 为执行耗时。
|
||||
- `steps`:执行步骤列表,包含动作类型、分页点击、抽取结果等摘要。
|
||||
- `metadata`:附加信息(如保存记录数量、分页页数、是否登录流程)。
|
||||
- `xml_source`:原始 XML 的来源地址;`xml_snapshot`:当前执行所用 XML(超出 50k 字符会截断并标记)。
|
||||
- `error` / `abort_reason`:当流程异常或被中止时记录详细信息(包含堆栈)。
|
||||
- 日志写入策略:
|
||||
- 流程开始时插入 `status=start` 的文档;
|
||||
- 正常结束时更新为 `success` 并补充 `steps`、`summary`、`metadata`;
|
||||
- 运行中出现异常时标记为 `error` 并写入堆栈;
|
||||
- 收到 `KeyboardInterrupt` 或其它不可恢复的中断时标记为 `aborted`。
|
||||
|
||||
可以根据 `site_id + flow_id + started_at` 建立索引用于快速查询,也可按 `status` 过滤待排查的任务。
|
||||
|
||||
## 开发与调试建议
|
||||
|
||||
- 日志级别默认 `INFO`,可自行设置环境变量 `PYTHONLOGGING` 或修改 `configure_logging`。
|
||||
|
||||
Reference in New Issue
Block a user