提问人:Vishal 提问时间:4/11/2023 更新时间:4/11/2023 访问量:11
需要澄清 Node/Express 如何并发处理 HTTP 请求以及如何防止超时
Clarification needed on how Node/Express processes HTTP requests concurrently and how to prevent timeouts
问:
我阅读了这篇文章 https://www.freecodecamp.org/news/nodejs-eventloop-tutorial/ 解释了 Node 的工作原理。本文的亮点是异步任务是在同步任务完成后进行处理的
这让我想到,当服务器收到大量请求时,节点请求会开始超时吗?
例如:
app.post('/createUser', (req, res) => {
// synchronous tasks like validating user information
const name = req.body.name
if (name===null) {
return res.send("INVALID_NAME")
}
// asynchronous task of saving to SQLite db
db.exec("*Insert into table SQL Statement*", (err,data) => {
return res.send("SUCCESS")
})
})
在上面的例子中:由于位于回调队列中,其处理可能会被新的传入请求延迟,因为调用堆栈和同步代码具有优先级。(err,data) => {return res.send("SUCCESS")})
请求是否可以在上面的代码中开始超时,因为在从调用队列中获取项目之前,新请求将处理调用堆栈中的数据?有什么更好的方法可以做到这一点?
答: 暂无答案
评论