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

NestJS+Axios+RxJS实现退避重试HTTP请求时form-data场景抛socket hang up错误

NestJS下FormData请求退避重试失败问题

问题描述

  • 在NestJS应用中调用service-a的HTTP接口,需实现退避重试逻辑,测试时通过重启service-a的Docker容器模拟服务故障场景,配置重试次数为3次
  • 实际运行结果:首次请求因service-a重启返回405 service not available错误触发重试,后续三次重试均抛出socket hang up错误,且重试请求未在Nginx服务生成任何访问日志
  • 预期结果:service-a启动完成后首次重试即可返回成功响应

问题排查更新

测试content-type: application/json的请求时,重试机制可正常运行,仅在content-type: form-data场景下出现该问题,属于FormData类型请求重试的常见共性问题。
关联参考资源:

  • 服务架构图
  • 基于NestJS Axios封装库的请求代码
  • rxjs的retryWithBackOff操作符实现代码
  • 三次socket hang up错误截图

解决方案

已通过Promises结合try&catch手动实现重试逻辑,解决了该问题。
参考:解决方案实现截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 05:27:02