[second-Update]: 我通过使用承诺和try & catch来解决了这个问题 。
[第一次更新]。
我试着用HTTP请求的重试机制,
content-type: application/json
,它工作了!!但我的问题是内容类型
form-data
。
我想这和这个问题很相似:
Axios拦截器重试发送FormData
我试图从NestJS-app向服务a发出一个HTTP请求。
而且我想用回退逻辑实现重试。
为了重现服务a的失败,我重新启动了它的docker容器并发出了HTTP请求。
重试逻辑实现为3次重试。
第一次重启时,service-a被抛出
405 service not available
错误,并进行重试。
所有3次重试都失败了,出现了
socket hang up
的错误。
使用axios nestjs wrapper lib的HTTP请求代码
retryWithBackOff
rxjs
操作符的实现
第一次调用抛出一个
405 Service Unavailable
错误。
然后应用程序开始重试。
service-a
开始后第一次重试,失败了,有错误。
socket hang up
第一次、第二次和第三次重试失败,
socket hang up
。
3个套接字挂起了错误
我的预期行为是。
当
service-a
开始后,第一次重试就开始了,它应该能成功响应。
请注意,3次重试并没有向Nginx服务器记录任何信息!