javascript - 即使更改超时后请求超时也不会改变(Windows 操作系统)
问题描述
我正在增加请求选项中的超时时间,但请求仍然在一段时间后超时(大约 100 秒)
我用谷歌搜索并知道,有两种类型的超时(读取超时和连接超时)。另外,我开始知道,当您将超时时间增加到大于操作系统定义的超时时间时,它将不起作用。
注意:我在这里处理大量数据。
request.post('http://192.168.177.132:3001/api',{
json : {
stationid : id,
start : From,
end : To
},
timeout:500000,
time:true
},(error, res) => {
if (error) {
console.error(error)
return
}
})
根据上面的代码,请求应该在 500s 后超时,但它在 100s 左右超时
解决方案
您还必须增加服务器的连接超时时间(我猜您有自己的服务器将从上述请求接收数据)。
例如,如果您的服务器是 Nodejs ( docs ),您可以像下面的示例一样增加连接超时:
const express = require('express')
const http = require('http')
const app = express()
const port = 3000
app.set('port', port)
// app.get('/upload', ...)
const server = http.createServer(app)
server.timeout = 24 * 60 * 60 * 1000 // 24 hours
server.listen(port)
server.on('error', () => { // error handle }))
server.on('listening', () => { console.log('Listening on ' + port) })
每个服务器端语言/框架可能都有默认超时,所以只需增加它!
推荐阅读
- java - Java 8 流 - 将方法传递给过滤器
- docker - 如何在 Docker Toolbox 中访问容器服务器
- python - 我不断收到此错误:第 57 行列表索引超出范围
- php - 在 php 中如何调用或链接另一个 php 页面?
- python - 以相同的方式写入具有多个列表和字典的文件
- c# - 如何获取已存在于 input.txt 文件中的数据并使用字典 C# 找到最高薪水
- tensorflow - 关于 tensorflow 教程“model()”与“model.predict()”的问题
- node.js - 使用 Object.keys 渲染变量,多个 Object.keys 循环 reactjs
- python - 在 for 循环中直接调用 SeqIO.parse() 有效,但事先单独使用它不是吗?为什么?
- arrays - 在 Armv8 Assembly 中访问和修改数组