You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Heroku中设置超过30秒的请求响应超时时间

Heroku 30秒请求超时问题解决方案

Heroku的HTTP请求30秒超时是平台层面的硬限制,没有任何配置可以直接修改该阈值、让请求持续挂起直到处理完成。针对你提到的文件处理类长耗时场景,推荐采用异步任务架构适配平台限制,具体实现方案如下:

  • 上传请求立即响应,不等待处理完成
    用户上传文件后,接口直接返回202 Accepted状态码,同时返回唯一的任务查询ID,告知用户后续可通过该ID获取处理结果。
  • 异步执行文件处理任务
    将文件处理逻辑提交到后台任务队列执行,不同技术栈可适配的常用队列工具如下:
    • Ruby生态:Sidekiq
    • Python生态:Celery
    • Node.js生态:BullMQ
      你可以直接使用Heroku内置的Worker dyno运行任务队列的消费进程,无需额外部署第三方服务。
  • 前端轮询/服务端推送获取结果
    前端拿到任务ID后,每2-5秒向服务端发送一次查询请求,获取当前任务的处理状态:
    • 处理中:返回状态标识,前端继续展示等待提示/处理进度
    • 处理完成:返回生成的下载链接,前端直接展示给用户
      如果需要更实时的反馈,可以搭配WebSocket实现服务端主动推送结果,降低轮询的资源消耗。
  • 可选优化:增加任务进度反馈
    如果文件处理可以拆分为多个步骤,可以在任务执行时同步把进度数据写入缓存,查询接口可以返回当前进度百分比,提升用户等待体验。

注意:不要尝试用分块响应、HTTP长连接等方式绕开30秒限制,Heroku的路由层会主动切断所有超过30秒没有返回完整响应的HTTP连接,无论连接是否还有数据传输。

内容的提问来源于stack exchange,提问作者user16606396

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:48:04