gpt4 book ai didi

javascript - 需要跟踪 setTimeout 调用,以防以后需要取消它们吗?

转载 作者:太空宇宙 更新时间:2023-11-04 01:33:13 25 4
gpt4 key购买 nike

所以我让nodejs运行一个express服务器,我们的一个端点需要启动一个10分钟的计时器,并在这10分钟结束时执行一些代码。我使用 setTimeout 来执行此操作,并将其存储在变量中。

现在,如果用户执行操作并进行不同的 api 调用,我们不再需要在这十分钟结束时执行代码。但要取消的正确 setTimeout 取决于一个特殊变量。

如何跟踪许多 setTimeout 变量?我是否应该有一个全局 hashmap 将特殊变量映射到 setTimeout,然后在第二个 api 调用中传递特殊 var 来识别正确的 setTimeout 来调用clearTimeout?

这是我能想到的唯一方法,但对于可能负载较重的 Node.js 服务器,我不确定仅添加到 HashMap 或数组是否是正确的解决方案。预先感谢!

// start countdown timer for 10 minutes
let offerTimer = setTimeout(function() {
// some code
}, 60000 * 0.25);

其他一些快速 Controller 功能

if (req.body.accepted == true) {
// need to clear the interval associated with req.body.jobpost_id
}

最佳答案

您可以将计时器变量存储在全局映射中,但在 Node 中设置许多计时器是一个不好的做法。相反,最好使用 Redis,为每个用户设置 Redis ttl。 https://redis.io/commands/TTL 。或者使用其他作业调度程序(议程、 Node 调度等)。

关于javascript - 需要跟踪 setTimeout 调用,以防以后需要取消它们吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55386706/

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