gpt4 book ai didi

javascript - post 请求中的 setInterval 是否对服务器性能不利 -expressjs

转载 作者:行者123 更新时间:2023-12-01 02:32:11 25 4
gpt4 key购买 nike

当用户向我的 Express 服务器发出发布请求时,我设置了一个时间间隔来轮询用户的 Spotify 帐户以获取播放信息。

app.post('/party', _ensureAuthenticated, function(request, response) {
const token = decrypt(request.user.encryptedAccessToken);
setInterval( () => {
pollSpotify(token)
}, pollInterval);
});

我的问题是,如果多个用户对不同的帐户发出此发布请求,并在 Express 服务器上设置许多间隔,这会降低我的服务器性能吗?如何清除这些超时间隔?从我的 Express 服务器轮询 Spotify 的更好方法是什么?

最佳答案

will this degrade my servers performance?

是的,建立越来越多的 setInterval() 计时器最终会影响您的服务器性能。它对服务器的影响程度取决于您的 pollInterval 以及每个间隔必须执行的处理量以及您拥有的计时器数量。

而且,由于您无法停止其中一个计时器,因此它们将永远堆积起来,甚至在用户离开您的网站几天后也是如此。而且,如果给定用户多次访问 /party,您甚至会得到重复的内容。

为了提出更好的设计建议,我必须了解您在 pollSpotify(token) 中做什么以及您如何处理在那里找到的结果。

至少,您需要能够知道用户何时不再访问您的网站,以便您可以停止为他们运行的计时器并防止给定用户重复。

如果您只有一个轮询计时器来运行所有轮询,并代表事件的用户/ token 数组中的每一项进行检查,那么它的可扩展性会更高。然后,您可以根据用户请求从数组中添加/删除项目,或者超时为非事件状态。

当然,您需要知道用户何时不再活跃在您的网站上,以便您可以代表他们停止投票。

关于javascript - post 请求中的 setInterval 是否对服务器性能不利 -expressjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48236578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com