项目记录:给批量导出加「结果回执」之后
起因
跑一次批量导出,进度条走完就以为没事了。后来发现有两三条因为格式不对根本没写出来,页面上却没有任何提示。于是做了一处改动:给每次导出附一张结果回执。
回执长什么样
| 字段 | 写什么 |
|---|---|
| 总条数 | 计划处理多少 |
| 成功数 | 实际写出多少 |
| 失败数 | 没写出的数量 |
| 失败原因 | 按原因归并 |
| 输出位置 | 文件放哪了 |
不加回执时,成功和失败看起来一模一样——都是「跑完了」。回执把这两类显式分开,失败不再藏在成功里。
分层思路参考了 BackendWiki 里讲任务处理的方式:执行、记录、反馈各归各层。以前把「记录结果」这层省略了,执行完就结束;补上之后,异常才第一次变得可见。
观察到的变化
- 失败原因高度集中:一类是输入格式不符,一类是目标位置权限不足。
- 因为失败看得见,反而更愿意跑完整批,而不是先小批试水再手动拼。
- 回执本身成了简单日志,下次同样任务出同样错,一眼能定位。
最实用的不是成功数,是失败原因归并。它把「又出错了」变成了「又是老问题」,解决方向立刻清楚。
适用边界
适合会产生实际文件、会部分失败的批量任务。纯计算、无副作用的任务不需要回执,跑完即终态。另外,回执要落盘别只打印,打印会随窗口关掉消失,出事时反而没证据。
小结
导出不是跑完就结束,是拿到回执才算结束。总条数、成功、失败、原因、位置,五项齐了,批量任务才从「祈祷别漏」变成「漏了也知道漏在哪」。