javascript - setTimeout 函数会影响 Node.js 应用程序的性能吗?
问题描述
我有一个订票请求处理程序:
route.post('/makeBooking', (req, res) => {
// Booking code
setTimeout(function () {
// Checks if the payment is made, if not then cancels the booking
}, 900000);
});
现在我有一个预订路线,如果没有在 15 分钟内付款,超时功能将取消预订。
此功能是否会导致任何与性能相关的问题或内存泄漏?
解决方案
此功能是否会导致任何与性能相关的问题...
不,它不会,至少不会本身。在setTimeout
等待调用它的回调时,它是非阻塞的。呼叫被简单地添加到队列中。在将来的某个时候,回调会触发,并且调用会从该队列中删除。
与此同时,你仍然可以处理东西。
...或内存泄漏?
回调在setTimeout
闭包内。一旦setTimeout
调用回调,它就有资格进行垃圾收集。
除非您在 900000 毫秒时间内获得数百万次预订,否则您无需担心;当然,数量取决于您分配给 Node.js 应用程序的内存大小。
当然,如果您确实每秒收到那么多请求,那么您还有其他更重要的事情要担心。
推荐阅读
- javascript - 是否可以将此文本电子邮件链接更改为 html,或者至少显示替代文本?
- typescript - 尝试将 tsconfig 作为 json 对象加载
- css - 我想在悬停时向表格行添加新选项
- c - 为什么 execvp() 中的 wc 命令从我的 shell 中的管道获取输入时返回错误的结果?
- oracle - 查询行左连接不匹配 ansi 连接等价行
- python - 如何正确读取和编码通过烧瓶发送的文本?
- reactjs - 在 React.js 中使用自定义图标
- reactjs - 如何在 React 中处理静态文件的状态码
- java - 在 Wildfly v.21(与 v.22 相同)第二个集群节点启动时,具有 NON_XA 事务的复制缓存无法同步缓存数据
- javascript - 从另一个方向导入整个 SVG 图像文件夹