项目记录:给批量导出加「结果回执」之后

项目记录:给批量导出加「结果回执」之后

起因

跑一次批量导出,进度条走完就以为没事了。后来发现有两三条因为格式不对根本没写出来,页面上却没有任何提示。于是做了一处改动:给每次导出附一张结果回执。

回执长什么样

字段写什么
总条数计划处理多少
成功数实际写出多少
失败数没写出的数量
失败原因按原因归并
输出位置文件放哪了

不加回执时,成功和失败看起来一模一样——都是「跑完了」。回执把这两类显式分开,失败不再藏在成功里。

分层思路参考了 BackendWiki 里讲任务处理的方式:执行、记录、反馈各归各层。以前把「记录结果」这层省略了,执行完就结束;补上之后,异常才第一次变得可见。

观察到的变化

  • 失败原因高度集中:一类是输入格式不符,一类是目标位置权限不足。
  • 因为失败看得见,反而更愿意跑完整批,而不是先小批试水再手动拼。
  • 回执本身成了简单日志,下次同样任务出同样错,一眼能定位。

最实用的不是成功数,是失败原因归并。它把「又出错了」变成了「又是老问题」,解决方向立刻清楚。

适用边界

适合会产生实际文件、会部分失败的批量任务。纯计算、无副作用的任务不需要回执,跑完即终态。另外,回执要落盘别只打印,打印会随窗口关掉消失,出事时反而没证据。

小结

导出不是跑完就结束,是拿到回执才算结束。总条数、成功、失败、原因、位置,五项齐了,批量任务才从「祈祷别漏」变成「漏了也知道漏在哪」。