是否可以在node.js请求中设置无限超时?
我正在使用'request'node.js module()向另一个服务发送请求。 有时需要发送请求并无限期地等待响应,因为发送请求的服务速度缓慢 可以将“timeout”属性设置为请求,通过这种方式,您将覆盖读取和连接超时的默认值: timeout—包含在中止请求之前等待服务器发送响应头(并启动响应正文)的毫秒数的整数。请注意,如果无法建立底层TCP连接,操作系统范围的TCP连接超时将否决超时选项(Linux中的默认值可以是20-120秒)是否可以在node.js请求中设置无限超时?,node.js,http,express,request,timeout,Node.js,Http,Express,Request,Timeout,我正在使用'request'node.js module()向另一个服务发送请求。 有时需要发送请求并无限期地等待响应,因为发送请求的服务速度缓慢 可以将“timeout”属性设置为请求,通过这种方式,您将覆盖读取和连接超时的默认值: timeout—包含在中止请求之前等待服务器发送响应头(并启动响应正文)的毫秒数的整数。请注意,如果无法建立底层TCP连接,操作系统范围的TCP连接超时将否决超时选项(Linux中的默认值可以是20-120秒) 但是我们可以设置什么值来使这个超时无限大呢?将ser
但是我们可以设置什么值来使这个超时无限大呢?将
server.timeout
属性从120000
(默认值)设置为0
所有客户端都有自己的超时(chrome、Firefox等),然后你必须认为设置无限超时没有用,你必须重新思考你的问题,这不是一个好办法,我想十亿美元就足够了。我真的不认为您希望等待超过10天。您可以控制服务器超时。但是客户端可能有自己的超时(例如浏览器),而您无法控制。当然,这是一个设置超时的选项。但神奇的数字总是被视为权宜之计。如果一些官方文档说将timeout设置为0等于无穷大,这将是完美的,但它没有说。没有timeout通常不是一个好的设计。任何一种从不发送响应的编程错误都会导致一方或双方泄漏TCP套接字。暂停是有充分理由的。您可能需要一种不同的设计来传回长时间运行的结果,或者是一个requestID,该结果可以稍后发送回(通过webSocket或通过未来的http请求请求结果)。完全同意您的意见。我已经考虑过了。但是,如果没有人想重写逻辑来使用requestID,我希望可以有一些“超时逻辑”。我担心通过这种方式,我们会为该服务器中的所有请求设置0,对吗?@IrinaPetrushenko,您是在为特定脚本添加还是?我的意思是,如果您有一些带有API的服务器,并且您不想为所有请求设置一个无限限制,那么它将不起作用。在我的情况下,请求从一个node.js服务转到另一个node.js服务。我可以控制/编辑两个服务中的超时。好的,然后检查这个答案