由于node.js延迟响应,连接超时

我有一个ejs页面,启动一个GET请求来执行一个shell脚本。

并且节点js在执行脚本和shell脚本的输出之后响应页面

res.render{ output: shell_script_output } 

脚本得到正确执行,并在node.js控制台中输出输出。

但是我的浏览器在2分钟后出现连接超时错误,因为脚本执行超过5分钟。

什么可能是最佳的解决scheme呢? 如何使ejs页面等待脚本执行?

谢谢。

把请求的细节放在一个作业队列(可能是一个数据库表,或者如果你想变得复杂一些,比如ZeroMQ),而是立即返回(在响应中传递作业的ID),而不是运行脚本。 。

有一个单独的进程监视队列,并在有作业时触发shell脚本。 脚本完成后,将结果放入响应队列中。

同时,回到客户端,定期轮询服务器(比如每30秒)一次请求作业ID。 让服务器检查响应队列以查看是否存在该作业的数据,然后用“这是它”,“尚未准备好”或“已经过了15分钟,可能出错了”。