G41_TAPD_BUG_SYNC/docs/全局框架文档.md

4.5 KiB
Raw Blame History

全局框架文档

用途:统一维护项目模块、脚本职责与接口定义,避免调用不存在接口与跨任务耦合失控。 范围:src/src2/,以及新增的全局模块(如后续 core/)。


1. 日志系统总览(重构目标态)

1.1 目标架构

  • 全局日志内核:位于任务目录外,提供统一记录能力。
  • 任务一适配层:写入 logs/
  • 任务二适配层:写入 logs2/
  • 同步边界管理:每次同步使用唯一 sync_id 分隔,结束时写统计。

1.2 统一日志字段(约定)

  • event_typestart_sync / api_call / end_sync
  • timestamp:事件时间
  • tasktask1 / task2
  • sync_id:单次同步唯一标识
  • modulesmartsheet / tapd / wework
  • operation:接口操作名
  • request:请求快照(含脱敏)
  • response:响应快照(含脱敏)
  • success:调用是否成功
  • error_message:失败原因
  • duration_ms:调用耗时(毫秒)
  • stats:同步完成统计(仅 end_sync

2. 模块清单与职责(当前状态)

2.0 全局核心(core/

  • core/global_log_system.py
    • 职责提供统一日志内核jsonl 写入、同步分隔、API 事件、统计事件、脱敏)。
    • 接口(对内)start_synclog_apiend_sync_with_stats
    • 创建器create_task1_log_system(固定 logs/)、create_task2_log_system(固定 logs2/)。
  • core/__init__.py
    • 职责:导出全局日志内核与创建器。

2.1 任务一(src/

  • src/scheduler.py
    • 职责:任务一调度入口,定时触发单次同步。
    • 关键依赖src/main.py
  • src/main.py
    • 职责:任务一主流程编排(扫描、校验、开单、回写、通知)。
    • 接口(对内)run_once(...)
  • src/smartsheet.py
    • 职责:智能表格 API 封装。
    • 接口(对内)get_sheet_listget_fieldsget_recordsupdate_records 等。
  • src/tapd_api.py
    • 职责TAPD Bug API 封装(创建、查询、附件上传)。
    • 接口(对内)create_bugget_bugupload_attachment 等。
  • src/token_manager.py
    • 职责:企业微信 access_token 获取与缓存。
    • 接口(对内)get_token()
  • src/wework_notifier.py
    • 职责:企业微信消息通知。
    • 接口(对内)send_validation_failure_notification(...)
  • src/api_logger.py
    • 职责:现有日志记录器(后续将作为兼容层)。

2.2 任务二(src2/

  • src2/scheduler.py
    • 职责:任务二调度入口,定时触发同步。
    • 关键依赖src2/sync_service.py
  • src2/sync_service.py
    • 职责:任务二同步编排(读取、解析链接、查询 TAPD、回写、通知
    • 接口(对内)sync_once()
  • src2/smartsheet.py
    • 职责:任务二智能表格 API 适配层。
    • 关键点:应固定写入 logs2/
  • src2/smartsheet_sync.py
    • 职责:任务二表格字段检查、记录提取与回写构造。
  • src2/tapd_api.py
    • 职责:任务二 TAPD Story 查询与状态映射。
  • src2/notifier.py
    • 职责:任务二失败通知封装(当前复用任务一通知器,存在串目录风险)。
  • src2/logger.py
    • 职责:任务二日志实例入口(后续接入统一内核)。

3. 现存问题与待改造点

  • 串目录问题:任务二复用 TokenManagerWeWorkNotifier 可能写入 logs/
  • 双记录矛盾:同一次请求在部分分支可能出现先成功后失败两条记录。
  • 写入稳定性问题:现有按 JSON 数组拼接的策略会造成结构损坏风险。
  • 同步边界缺失:缺少标准化 start_sync / end_sync 分隔与统计记录。

4. 模块接口演进计划(摘要)

  • 阶段1新增全局日志内核模块定义统一接口。已完成
  • 阶段2src/api_logger.py 改造成兼容层,保证旧调用可用。
  • 阶段3src2/logger.py 与任务二编排层切换到统一内核,修复串目录。
  • 阶段4更新查看工具与文档支持 jsonl + sync_id

5. 变更记录

2026-02-28

  • 新建本框架文档。
  • 写入日志系统重构目标态、模块职责清单、问题清单与演进路线。

2026-02-28更新

  • 新增 core/global_log_system.pycore/__init__.py 模块说明。
  • 标记阶段1完成统一日志内核已落地待阶段2/3接线。