huangzd1997
|
bd3af46cf8
|
progress 91
|
2026-08-30 23:05:11 +08:00 |
|
huangzd1997
|
72998b7d22
|
task-91: 按页面拆分 Element Plus 与公共业务 chunk 规划器
|
2026-08-30 23:05:08 +08:00 |
|
huangzd1997
|
6804b2dea6
|
progress 90
|
2026-08-30 23:01:20 +08:00 |
|
huangzd1997
|
bf38a1b9a0
|
task-90: 进度接口增加断网、超时、服务恢复和重复响应测试
|
2026-08-30 23:01:17 +08:00 |
|
huangzd1997
|
cc2722c104
|
progress 89
|
2026-08-30 22:57:08 +08:00 |
|
huangzd1997
|
bb2f200d76
|
task-89: 清理页面卸载时的所有 timer、请求和临时 URL
新增纯 TS 页面卸载清理注册表 page-cleanup-registry:统一登记 blob
临时 URL(dispose 时 revokeUrl 释放)、AbortController(abort)与
timer 清理委托(clearTimers)。dispose 幂等且后注册拒绝并计数;
revokeUrl 抛错不中断其余条目;maxTrackedUrls 上限只保留最近注册的
URL。8 个测试覆盖默认、批量、幂等、空、单元素、上限驱逐、非法 hooks
与 revoke 故障恢复。
|
2026-08-30 22:57:04 +08:00 |
|
huangzd1997
|
79961170c3
|
progress 88
|
2026-08-30 22:55:31 +08:00 |
|
huangzd1997
|
6600bfaa99
|
task-88: 解析结果前端只接收预览数据,避免大 payload 进入响应式对象
新增纯 TS 预览裁剪 parse-preview:把解析 Vo 裁剪为摘要字段
(taskId/行数统计/开关/prompt),items/groups 整包剔除,可按
previewRowLimit/previewGroupLimit 有界保留样本行供表格展示。输入
对象永不修改,taskId 非法 fail-fast,属性读取抛错时零部分结果。
BrandSimilarAsinTab 的 parseFiles 改为只接收裁剪后的预览(保留
200 行样本),数千行 items 不再进入 Vue 响应式 ref。8 个测试覆盖
默认、批量、幂等、空、单元素、截断溢出、非法输入与 getter 故障。
|
2026-08-30 22:55:27 +08:00 |
|
huangzd1997
|
abb262668c
|
progress 87
|
2026-08-30 22:53:12 +08:00 |
|
huangzd1997
|
2da93414a5
|
task-87: 限制 localStorage 中任务、快照和队列数据的最大数量/字节数
新增纯 TS 有界 localStorage 包装 local-storage-limiter:maxKeys 与
maxBytes 双上限,超限驱逐最旧写入的 key(更新已存在 key 刷新新鲜度),
单条超限拒绝写入且无部分数据,存储抛错(QuotaExceededError)不污染
内部索引。重复写同 key 幂等,空 key 与不可序列化值拒绝,remove/clear
释放全部条目。8 个测试覆盖默认、批量、幂等、空、单元素、双上限驱逐、
非法输入与存储故障恢复。
|
2026-08-30 22:53:08 +08:00 |
|
huangzd1997
|
6a470d1b39
|
progress 86
|
2026-08-30 22:51:24 +08:00 |
|
huangzd1997
|
58e91589df
|
task-86: 将隐藏页面轮询间隔、前台恢复和退避策略统一配置化
task-progress-config 新增统一配置 API:getTaskPollBackoffMs(attempt)
指数退避(base×2^attempt 封顶 max)、前台恢复开关与延迟
(getTaskForegroundRefreshEnabled/DelayMs)、configureTaskPolling/
resetTaskPollingConfig 运行时配置。校验失败抛错且零状态变更,
document 缺失时按可见间隔降级。useTaskProgressLoop 改用退避配置
替代硬编码 500ms 重试,前台恢复走可配置开关与延迟(含 in-flight 防
并发)。8 个测试覆盖默认、多配置、幂等、空、单字段、封顶、非法输入
与故障恢复。
|
2026-08-30 22:51:21 +08:00 |
|
huangzd1997
|
62bf1fb206
|
progress 85
|
2026-08-30 22:49:49 +08:00 |
|
huangzd1997
|
25d5a5a5e3
|
task-85: 优化 Similar ASIN 轮询与文件生成等待,避免重复 force 请求
新增纯 TS force 节流守卫 asin-force-throttle:为每个 taskId 维护 TTL
冷却窗口,窗口内不重复发 force 请求(避免反复触发后端生成文件),到期
后允许重试,任务终态后 clear 立即释放记录。BrandSimilarAsinTab 的
refreshTaskProgress 改为按 pendingFileTaskIds 逐项查守卫决定本轮是否
带 force,请求成功后整批进入冷却。8 个测试覆盖默认、批量、幂等、空、
单元素、200 任务溢出、非法输入与时钟故障恢复。
|
2026-08-30 22:49:45 +08:00 |
|
huangzd1997
|
b3f16433fc
|
progress 84
|
2026-08-30 22:47:45 +08:00 |
|
huangzd1997
|
5caca86ad1
|
task-84: 优化店铺抓取队列状态合并,消除 historyItems 的线性重复查找
新增纯 TS 合并模块 merge-history-items:以 taskId→行列表 二级索引替代
原 mergeProgress 的 [...map.values()].find() 全表扫描(O(n×m)→O(n+m))。
命中语义与原实现一致(taskId 相同且 resultId 相同或 incoming 无
resultId),命中后删除旧 key 写入新 key,shopName 变化不再留下幽灵
重复条目,同批内后到条目可命中先到新增。BrandShopDataCrawlTab 的
mergeProgress 改用该模块。9 个测试覆盖默认、批量、幂等、空、单元素、
maxItems 限流、非法输入、keyOf 故障零变更与幽灵条目场景。
|
2026-08-30 22:47:41 +08:00 |
|
huangzd1997
|
5f062df3cc
|
progress 83
|
2026-08-30 22:44:16 +08:00 |
|
huangzd1997
|
e60bd8567a
|
task-83: 统一不同页面的轮询去重、in-flight 合并和终态清理
新增纯 TS 任务轮询协调器 task-polling-coordinator:重复 add 去重、
并发 runOnce 合并为单次请求并共享结果、markTerminal 幂等终态清理
(只回调一次)、maxTasks 上限拒绝超出条目。useTaskProgressLoop 新增
可选 coordinator 选项,add/remove/终态路径委托协调器统一处理(默认
不启用)。测试用 node:test 覆盖 8 个场景,含 3 路并发合并断言。
|
2026-08-30 22:44:12 +08:00 |
|
huangzd1997
|
a52e39ad80
|
progress 82
|
2026-08-30 22:42:12 +08:00 |
|
huangzd1997
|
83b93eb39b
|
task-82: 为进度响应 Map 增加 TTL 清理与最大条目数
新增纯 TS 进度响应缓存 progress-response-cache:写入后 ttlMs 过期、
条目数超 maxEntries 驱逐最旧、读取/枚举/清理惰性移除过期条目,时钟
可注入以便测试 TTL 边界。set 对非法 key fail-fast 抛错,时钟故障时
零部分写入,clear 释放全部条目。useTaskProgressLoop 新增可选
progressCache 选项,每轮响应快照写入有界缓存(默认不启用)。
|
2026-08-30 22:42:08 +08:00 |
|
huangzd1997
|
c19f59bb9e
|
progress 81
|
2026-08-30 22:39:01 +08:00 |
|
huangzd1997
|
9bf25765dd
|
task-81: 建立前端任务轮询请求量、响应体大小和页面内存基线
新增纯 TS 轮询基线组件 task-polling-baseline:累计轮询请求数、每次
批量响应的总字节与单次最大响应、按条目数/字节双上限的有界内存缓存
(超限驱逐最旧条目),失败路径零状态变更。useTaskProgressLoop 新增
可选 onBaseline 选项接入基线(默认零行为变化)。测试用 Node 24 原生
type-stripping + node:test 运行(npm test),8 个用例覆盖默认路径、
批量、幂等、空输入、单元素、限流溢出、非法输入与失败恢复。
|
2026-08-30 22:38:51 +08:00 |
|
huangzd1997
|
0ce664d2b9
|
progress 80
|
2026-08-30 22:31:10 +08:00 |
|
huangzd1997
|
c517711169
|
task-80: 补充 JVM 堆、直接内存、临时磁盘和连接池容量配置说明
|
2026-08-30 22:30:56 +08:00 |
|
huangzd1997
|
143ad3f6da
|
progress 79
|
2026-08-30 22:23:46 +08:00 |
|
huangzd1997
|
ba17e34b84
|
task-79: 为对象存储、数据库和队列增加故障注入测试
|
2026-08-30 22:23:33 +08:00 |
|
huangzd1997
|
42bbf4904e
|
feat-admin-ui-interaction
Build Backend JAR / build (push) Has been cancelled
|
2026-08-30 22:09:22 +08:00 |
|
huangzd1997
|
2b613a8e5a
|
progress 78
|
2026-08-30 22:01:15 +08:00 |
|
huangzd1997
|
4c70ca4101
|
task-78: 为所有外部调用增加耗时、重试、失败率和 payload 字节指标
新增 ExternalCallMetricsRecorder:通过 RestClient 拦截器统一记录
aiimage.external-call.duration(耗时)、aiimage.external-call.total
(失败率)、aiimage.external-call.payload.bytes(请求字节)与
aiimage.external-call.retry.total(重试次数);Coze/品牌检查/紫鸟
三个外部客户端全部接入,指标注册表缺失时静默降级,不改变调用语义。
|
2026-08-30 22:01:02 +08:00 |
|
huangzd1997
|
f1d1fe5c78
|
progress 77
|
2026-08-30 21:08:32 +08:00 |
|
huangzd1997
|
39e52858d1
|
task-77: 统一 Coze、品牌检查和紫鸟 HTTP 客户端的连接复用策略
|
2026-08-30 21:08:28 +08:00 |
|
huangzd1997
|
678ba57347
|
progress 76
|
2026-08-30 20:51:14 +08:00 |
|
huangzd1997
|
04f45bebec
|
task-76: JSON owner 查询迁移到显式列并补充任务/状态复合索引
|
2026-08-30 20:51:07 +08:00 |
|
huangzd1997
|
e9ba3689ba
|
progress 75
|
2026-08-30 20:39:35 +08:00 |
|
huangzd1997
|
6a4a115260
|
task-75: 虚拟线程任务等待队列上限与拒绝/延迟指标
|
2026-08-30 20:39:31 +08:00 |
|
huangzd1997
|
ba163aa4bd
|
progress 74
|
2026-08-30 20:31:43 +08:00 |
|
huangzd1997
|
5105ca95c5
|
task-74: 隔离调度线程池、文件作业线程池和外部 Coze/图片执行池
|
2026-08-30 20:31:39 +08:00 |
|
huangzd1997
|
adf0a5ff73
|
progress 73
|
2026-08-30 20:23:09 +08:00 |
|
huangzd1997
|
ec9811c8a5
|
task-73: 本地文件作业队列 in-flight 去重和队列背压
|
2026-08-30 20:22:58 +08:00 |
|
huangzd1997
|
f190896ea7
|
progress 72
|
2026-08-30 20:01:22 +08:00 |
|
huangzd1997
|
baa43d80ba
|
task-72: 文件作业数据库原子 claim,避免重复派发同一 job
|
2026-08-30 20:01:18 +08:00 |
|
huangzd1997
|
c07e26a400
|
progress 71
|
2026-08-30 19:53:50 +08:00 |
|
huangzd1997
|
6f32ed86e4
|
task-71: 清理日志改为数量与 sample ID,禁止输出超长任务 ID 列表
|
2026-08-30 19:53:49 +08:00 |
|
huangzd1997
|
f48407ec7e
|
progress 70
|
2026-08-30 19:49:03 +08:00 |
|
huangzd1997
|
9de4603484
|
task-70: 历史清理改为 keyset 分页、小批量和短事务
|
2026-08-30 19:48:59 +08:00 |
|
huangzd1997
|
fb090bf80d
|
progress 69
|
2026-08-30 19:30:01 +08:00 |
|
huangzd1997
|
5749a421cb
|
task-69: 历史清理任务收集 transient payload 指针并提交删除队列
|
2026-08-30 19:29:32 +08:00 |
|
huangzd1997
|
54260551ee
|
progress 68
|
2026-08-30 19:13:47 +08:00 |
|
huangzd1997
|
2de58b7afc
|
task-68: payload 引用删除改为批量引用检查与异步物理删除
- 新增 TransientPayloadDeleteOrchestrator:提交去重入队(maxPendingDeletes 上限),
flush 时一次性 IN 批量反查 biz_task_chunk / biz_task_scope_state,
未引用对象交由后台线程池异步物理删除(剥 rustfs: 前缀)
- 幂等:重复提交只入队一次;保守:查询失败整批保留可重试,不误删
- 空值/非指针忽略,本地/OSS 指针不在批量删除范围(各有归属与清理路径)
|
2026-08-30 19:13:43 +08:00 |
|
huangzd1997
|
45b23b559c
|
progress 67
|
2026-08-30 19:04:37 +08:00 |
|