我有一个节点js服务器A,它在另一台服务器B上发出请求,然后必须进行一项非常复杂的操作,需要花费很长时间才能完成(它会触发一个在大约3分钟内计算的算法)。 我希望服务器B用算法的结果响应请求。 但在发送响应之前,服务器A会收到状态码为504的响应。
我该如何处理?如何避免这个504错误,因为在我的情况下,响应很慢是正常的。
答案 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');