yeuimu
|
5aaddbbf7c
|
fix: worker 加 init 回收僵尸进程;label-ocr 批量请求重试且失败不落 ERROR
- docker-compose: prefect-worker 加 init: true。pull 步骤的 git 子进程被杀后
无人 wait 变僵尸,9/17 宿主机重启后爆发 3.7 万僵尸占满容器 cgroup PID 配额,
导致所有 flow run "Failed to start flow run process"(全量 CRASH 约 40h)。
- label_ocr: OCR 编排服务(lm-server-canary)偶发秒级重启,原逻辑对批量请求
失败零重试并整批标永久 ERROR,9/1、9/5、9/9 三波共 ~2500 单误标。
现改为请求级重试 3 次,仍失败则保持未处理,留给下个小时 run 自动重试。
|
2026-09-18 10:09:24 +00:00 |
|
rom
|
000a0a934e
|
chore: 补充 flows/platform_order 包 __init__.py
CI / test (pull_request) Failing after 2m2s
|
2026-09-17 14:55:56 +08:00 |
|
rom
|
5be6f33982
|
增加sm数据拉取数据
|
2026-09-17 14:29:25 +08:00 |
|
yeuimu
|
34675f16a8
|
style: 去掉引用语法, 明细改普通行(企微连续引用行渲染粘连)
|
2026-09-07 10:32:17 +00:00 |
|
yeuimu
|
669f1a717f
|
style: 去掉全部 emoji, 状态用颜色文字表达(一致/不一致/正常/过热/需关注)
emoji 在企微客户端渲染成大色块很扎眼; 改为纯文字+<font color> 三色,
状态词直接着色, 数据保持素色, 版式标题+单行结论+引用详情不变
|
2026-09-07 10:29:24 +00:00 |
|
yeuimu
|
9b130097f9
|
feat: 通知发送层切换到群机器人 webhook, 排版精简
- wecom.py 重写: HTTP POST webhook(替代 aibot WebSocket 按需连接), 接口 send_markdown/send_text 不变, Secret Block wecom-webhook 存 URL
- webhook markdown 支持标题/引用/font 三色, 报告改为 '## 标题 + 单行结论 + 引用详情' 紧凑排版, 结论行用 info/warning 色
- alert_failure 改标题式排版; device_check 结论用 font 色, 去掉负载行
- 移除 wecom-aibot-sdk 依赖与 wecom_capture_chatid.py(镜像下次构建生效, 无需立即重建)
|
2026-09-07 10:09:11 +00:00 |
|
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
|
d6be75d6b7
|
fix: 核验日报'数量一致'只看远程/本地总量, 状态差异单独第二段
|
2026-08-28 05:19:03 +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
|
66db7b279d
|
style: 日报改结论式极简排版(去掉补拉等内部术语和逐状态明细)
|
2026-08-28 03:50:24 +00:00 |
|
yeuimu
|
60e5ff404e
|
fix: 去掉 aibot 不支持的 font 标签,改加粗+emoji;补拉量合计格式化中文
|
2026-08-28 02:02:18 +00:00 |
|
yeuimu
|
14321faa91
|
style: 报告消息改用 WeCom 友好排版(去表格/彩色高亮/引用块)
|
2026-08-28 01:55:01 +00:00 |
|
yeuimu
|
5659c30bd1
|
fix: 日报措辞改为'已补拉',差异持续存在时提示口径问题
|
2026-08-27 11:02:24 +00:00 |
|
yeuimu
|
21057ea110
|
feat: alert 补全 flow 名;AGENTS.md 补充 monitor 架构说明
|
2026-08-27 09:45:28 +00:00 |
|
yeuimu
|
aa9a021ac4
|
fix: wecom-alert 发送失败时在日志留档报警内容
|
2026-08-27 09:43:26 +00:00 |
|
yeuimu
|
1d0da2a00b
|
feat: 接入企微智能机器人——异常报警/数据核验日报/设备健康日报
- flows/shared/wecom.py: WSClient 按需连接(连接→认证→发送→断开),全容错,超长分段
- flows/monitor/alert_failure.py: Prefect 事件触发(Failed/Crashed→run deployment),发群报警
- flows/monitor/daily_report.py: 每日 18:30 近7天 RIIN/SDS 核验(复用 verify)+商品完整性+OCR+失败回顾
- flows/monitor/device_check.py: 每日 09:00 内存/磁盘/GPU(80%阈值)+Docker 容器异常+服务探活
- db.py: 新增 get_goods_integrity/ping; compose worker 挂载 docker.sock+/:/host:ro+GPU
- scripts/wecom_capture_chatid.py: 一次性捕获群 chat_id 工具
|
2026-08-27 09:40:53 +00:00 |
|
yeuimu
|
b9e0bc42be
|
fix: SDS 款号解析器重写(split('()') 永不命中 bug)+RIIN style_code 兜底
|
2026-08-14 15:44:18 +00:00 |
|
yeuimu
|
0471065b68
|
fix: countryRegion 映射补'印美达美西二发货仓'→美国
|
2026-08-08 09:11:23 +00:00 |
|
yeuimu
|
320f5ed40a
|
feat: OCR 自动重跑 tracking 为空的已识别订单
|
2026-08-08 06:41:36 +00:00 |
|
yeuimu
|
a0e27ae738
|
fix: OCR 区分 UNSUPPORTED(rejected) 和 ERROR(临时失败)
|
2026-08-08 02:50:40 +00:00 |
|
yeuimu
|
2128f17868
|
feat: OCR 新增沙特(SA)支持; 默认加入沙特
|
2026-08-05 07:48:56 +00:00 |
|
yeuimu
|
1739d47d59
|
feat: label-ocr 默认加入墨西哥、德国
|
2026-08-05 07:31:18 +00:00 |
|
yeuimu
|
c5efa457d1
|
refactor: countryRegion 统一中文归一化; label-ocr 改用 countryRegion; destinationCountry 还原 ISO2
|
2026-08-02 16:07:24 +00:00 |
|
yeuimu
|
7ed1893b83
|
refactor: destinationCountry 统一归一为中文国名
|
2026-08-02 15:58:51 +00:00 |
|
yeuimu
|
4b2ef120b5
|
fix: label-ocr 防重入改用客户端过滤 RUNNING 状态
|
2026-07-31 05:46:38 +00:00 |
|
yeuimu
|
f8b8db2d79
|
fix: label-ocr 防重入改用 count>1 避免自检
|
2026-07-31 05:44:52 +00:00 |
|
yeuimu
|
68f0d9439c
|
feat: label-ocr 防重入(同一时间只跑一个)
|
2026-07-31 05:43:02 +00:00 |
|
yeuimu
|
a742f4169e
|
feat: label-ocr 默认 GB+US 近7天; refresh_pending 合并无面单订单(近7天)
|
2026-07-31 01:57:52 +00:00 |
|
yeuimu
|
3e075fd366
|
refactor: OCR 字段改驼峰(ocrLayout/ocrCourier/ocrSName...)
|
2026-07-24 08:33:46 +00:00 |
|
yeuimu
|
7267aa928c
|
feat: label-ocr 默认只处理英国(GB)
|
2026-07-24 08:28:04 +00:00 |
|
yeuimu
|
f0580a8ce4
|
feat: label-ocr 支持 destination_country/courier_source 筛选优先处理
|
2026-07-24 02:10:03 +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
|
8ab0aededa
|
feat: Orders 加 10 地址/店铺字段 + labelPdfUrl(SDS/RIIN mapper+db)
|
2026-07-23 16:05:46 +00:00 |
|
yeuimu
|
2b8a2b65f4
|
feat: SDS 历史数据回填脚本(工厂+确认时间补全)
|
2026-07-23 10:15:50 +00:00 |
|
yeuimu
|
a527ebc1de
|
fix: SDS factory(dict取值)+ confirmedAt(gmtConfirmTime) 映射修复
|
2026-07-23 09:41:08 +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 |
|