如何通过THIRD_PARTY_SERVER处理nodejs/expressjs网关超时?

问题描述 投票:0回答:1

获取

THIRD_PARTY_SERVER
端点的网关超时错误。

请参阅下面了解如何将请求发送到服务器。

BROWSER
->
PROXY_SERVER
->
THIRD_PARTY_SERVER

我现在面临的问题是

/api/upload
中有一个端点
THIRD_PARTY_SERVER
,它因抛出网关超时错误而失败。

现在我只是重新启动

PROXY_SERVER
以恢复网关超时。

我尝试过其他可能的选项,例如增加超时值以超过 15 分钟。

但是除了重新启动

PROXY_SERVER
之外,没有其他解决方案有效。

是否有其他可能的解决方案可以让

/api/upload
正常工作而无需重新启动
PROXY_SERVER

node.js express file-upload proxy timeout
1个回答
0
投票

要在 Node.js/Express.js 应用程序中处理来自第三方服务器的网关超时,您可以根据您的具体要求和超时的性质实施各种策略。以下是一些常见的方法:

增加超时设置:调整 Express.js 应用程序中的超时设置,以允许第三方服务器有更长的响应时间。您可以使用 server.timeout 配置选项或通过配置用于与第三方服务器通信的 HTTP 客户端库的超时设置来调整服务器的超时设置。

实现重试:在应用程序中实现重试逻辑,以便在发生超时时自动重试向第三方服务器发出请求。您可以使用 axios-retry 等库或使用异步函数和 Promise 实现自己的重试机制。

处理超时错误:捕获 Express.js 应用程序中的超时错误并妥善处理它们。您可以向客户端发送适当的错误响应,记录错误以进行故障排除,并可能重试上述请求。

实施断路器模式:实施断路器模式以防止在遇到问题或超时时重复调用第三方服务器。您可以使用brakes之类的库或实现自己的断路器逻辑,以在达到一定的超时阈值时暂时停止向第三方服务器发出请求。

使用异步中间件:如果您使用中间件向第三方服务器发出请求,请确保它是异步实现的。这允许其他请求在等待第三方服务器响应的同时继续处理,从而防止事件循环阻塞。

监控第三方服务器健康状况:实施监控和警报机制来跟踪第三方服务器的健康状况和性能。这使您可以在问题导致网关超时之前主动识别并解决问题。

通过采用这些策略,您可以有效处理 Node.js/Express.js 应用程序中第三方服务器的网关超时,并确保应用程序与外部服务交互的稳健性和可靠性。

© www.soinside.com 2019 - 2024. All rights reserved.