导出百万行数据接口必然超时,改异步生成文件再下载

百万行同步导出必然超时,改异步两段式。

接口只建任务,立刻返回 task_id 就收工。

队列里分批写文件,落到对象存储。

前端轮询状态,成功后拿带签名的下载链接。

任务表记状态和进度,失败要能重试。

导出不占请求线程,超时问题自然消失。

POST /api/export          -> 202 {"task_id":"e8f1","status":"pending"}
GET  /api/export/e8f1     -> {"status":"running","progress":42}
GET  /api/export/e8f1     -> {"status":"done","url":"https://.../report.xlsx?sig=..."}

-- worker 里游标分页取数,避免一次查全表
SELECT id, amount, created_at FROM orders
WHERE id > :last_id ORDER BY id LIMIT 5000;
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容