Commit Graph

2 Commits

Author SHA1 Message Date
Misaka_Company
5e3c5d5b31 修复 169 源文件瞬态导致的 “File is not a zip file”
根因:源 Excel 常被打开/保存,download 在拷贝瞬间抓到 0 字节或
残缺文件,openpyxl 解析即报 “File is not a zip file”;且 runner 在
download 之后、parse 之前就无条件 save_baseline,把 size=0 的瞬态
源记成 “已处理”,污染基线。

修复:
- source_watcher.download:下载后校验(非空 + ZIP 头 PK),不合法
  则删除并重试(默认 3 次,间隔 3s 等待源落盘)。
- source_watcher.has_changed:源不可达时优雅跳过本轮(WARNING),
  不再每轮刷 traceback(169 间歇不可达为已知问题)。
- runner.run_once:save_baseline 移到整轮(解析+写库)成功之后,
  杜绝把损坏/瞬态源记为已处理。
2026-07-15 16:53:37 +08:00
Misaka_Company
5ae7acffde 初始化项目:数据同步服务源码与文档
- src: config_loader / source_watcher / excel_parser / sync_writer / runner
- 169 Excel 全量同步至 114 SQL Server + Access 生产库
- 新增 .gitignore(忽略 venv、日志、数据、含凭据的 config.yaml 等)
- 新增 README.md(用途、安装、配置、运行模式、部署说明)
2026-07-15 14:14:39 +08:00