SpringBoot + 异步任务结果持久化 + 查询接口:用户可随时查看长时间任务进度与结果
前言 你是否遇到过这样的场景: 用户上传一个 1GB 的 Excel 文件,需要 5 分钟才能处理完成 导出 10 万条数据到 Excel,需要等待 2 分钟 批量处理 1000 个订单,每个订单需要调用 3 个第三方接口 这些长时间运行的任务,如果让用户一直等待页面响应,体验极差。更糟糕的是,如果系统崩溃或重启,任务进度全部丢失,用户需要重新提交。 今天要介绍的「异步任务结果持久化 + 查询接口」方案,将彻底解决这个问题——任务进度实时可查,系统重启不丢失。 一、传统异步任务的痛点 场景重现 产品经理说:「用户需要导出 10 万条订单数据,这个功能要尽快上线。」 你很快写出了代码: @RestController @RequestMapping("/export") public class ExportController { @GetMapping("/orders") public void exportOrders(HttpServletResponse response) { List<Order> orders = orderService.findAl....