长任务接口怎么设计
收录 2026-10
导出、批处理这类几十秒的请求容易被超时掐断,改成提交任务再查询结果
这个接口要跑 [耗时范围],经常被网关超时掐断。请把它改成提交任务返回任务标识、由客户端轮询或等回调的方式,并处理重复提交与结果过期。输出:接口时序、任务状态机、轮询建议间隔与退避、结果文件的保留时长、以及客户端拿到失败后该如何重试。
本站原创
中文原文
使用示例
示例输入
这个导出接口要跑两分钟,常被网关超时掐断,改成提交任务再轮询查询结果。
输出应包含
- 交代接口时序与任务状态机
- 处理重复提交与结果过期问题
- 给轮询间隔退避与失败重试
复制前替换这些占位符 1
把方括号里的内容换成你的具体信息,替换后再粘贴给 AI。
[耗时范围]
使用建议
轮询接口要能区分「还在跑」和「查不到这个任务」,否则客户端会无限重试。
可以这样改
- 要求它先复述需求与约束,确认无误再写代码。
- 让它给出最小改动 + 回滚方式,而不是整文件重写。
交付物(这次应拿到什么)
- 可运行的最小改动(含直接可用的代码块)
- 影响面清单:改了哪些文件、哪些调用点要跟着改
常见错法
- 一次让它改十个文件,最后分不清哪处改动导致了新问题。
- 只贴报错不贴代码和版本,拿到无法落地的修法。
输出验收(怎么判断能用)
- 改动可运行、可回滚,且没顺手改无关代码。
- 边界条件(空值、超长、并发)有说明或测试。
适用场景与注意
- 适合:让它先复述需求和约束,再给最小可运行改动。
- 注意:贴报错时同时给版本号与最小复现,否则它容易给出看似合理但不适配的写法。