10 Commits
Author SHA1 Message Date
yeuimu c545c1b87d fix: 写库并发控制(advisory锁串行写+分批提交+lock_timeout+死锁重试), refresh_pending写任务加重试
死锁根因:sds-refresh-pending 与 label-ocr 整点并发写同一分区 Orders_2026_08,
互等对方未提交事务(ShareLock)。24h 内同类死锁 7 起。
- sync_orders_and_goods 所有写事务先取同一把 PG advisory 锁(事务级),单锁无环,死锁结构性消除
- 同步按批(1000单)独立提交,持锁窗口从整个 pending 集缩到单批
- 连接预设 lock_timeout=15s,DeadlockDetected/LockNotAvailable 整事务重试 3 次(退避1/3/7s)
- label-ocr 的 update_ocr_batch/update_ocr_fields 走同一把锁+重试
- sds/riin refresh_pending 的 upsert_records 加任务级重试(retries=3)
2026-09-02 03:23:02 +00:00
yeuimu 7c323e9a3f feat: 四份报告按用户口径重做
- 核验日报: 先报订单数量(远程vs本地, verify 修复后重数 verifyReport.post)/商品行数一致性, 再报状态不符单数; SDS 统计口径排除'售后'与本地对称
- OCR: Orders 加 ocrProcessedAt 列(写入自动盖时间戳), 日报报'今日处理 X · 识别失败 Y'(db.count_ocr_today)
- 失败任务: check_prefect_failures 补 workflow 名, 日报/设备报列 run 名+状态+时间
- 设备日报: 新增 metrics-agent 侧车(每5分钟采样内存/swap/GPU+每日 du 快照), 报告改 平均/峰值/最低 + 总体/根目录/home 余量 + 增长最快目录 + GPU 温度; 采样缺失降级瞬时值
- Dockerfile 加 tzdata(TZ=Asia/Shanghai); du 用实际占块且容错 rc=1
2026-08-28 05:01:55 +00:00
yeuimu a742f4169e feat: label-ocr 默认 GB+US 近7天; refresh_pending 合并无面单订单(近7天) 2026-07-31 01:57:52 +00:00
yeuimu 70178e9295 feat: OCR v2 batch + RIIN waybill + 双系统 label-ocr flow(hourly) 2026-07-23 23:44:24 +00:00
yeuimu 51dbde4538 feat: OCR 面单 enrichment flow (api/ocr/ + flows/sds/label_ocr.py + db OCR 方法) 2026-07-23 16:15:24 +00:00
yeuimu 2b8a2b65f4 feat: SDS 历史数据回填脚本(工厂+确认时间补全) 2026-07-23 10:15:50 +00:00
yeuimu 4ec7cf2dd6 feat: 详细日志(分页/映射/批次进度)+ Artifacts 摘要(sync-summary/verify-report) 2026-07-23 09:01:39 +00:00
yeuimu 367168bcdc fix: <>ALL(%) parens + refresh_100_prefix add orderCount/goodsCount 2026-07-23 08:46:22 +00:00
yeuimu 53ff943ac3 fix: db.py SQL (<>ALL, escape %% in LIKE) + incremental_sync tz-aware compare 2026-07-23 08:43:27 +00:00
yeuimu 4cba1da4e1 init: Prefect ETL sync project (RIIN/SDS → PG) with 12 sync flows 2026-07-23 08:13:09 +00:00