节点js请求花费很长时间来获得响应避免错误504

时间:2018-01-18 15:37:50

标签: node.js http-status-code-504

我有一个节点js服务器A,它在另一台服务器B上发出请求,然后必须进行一项非常复杂的操作,需要花费很长时间才能完成(它会触发一个在大约3分钟内计算的算法)。 我希望服务器B用算法的结果响应请求。 但在发送响应之前,服务器A会收到状态码为504的响应。

我该如何处理?如何避免这个504错误,因为在我的情况下,响应很慢是正常的。

1 个答案:

答案 0 :(得分:0)

也许你可以试试Server Sent Events。我在类似情况下取得了成功,并且如果您的计算算法发出某种进展,也允许将进度报告给用户。它基本上将响应流回客户端。

res.writeHead(200, {
  'Content-Type': 'text/event-stream',
  'Cache-Control': 'no-cache',
  'Connection': 'keep-alive'
});

后跟一个progess或其他消息

res.write(JSON.stringify(progress)+ '\n\n');