gpt4 book ai didi

javascript - 在 node.js 中以固定延迟轮询

转载 作者:搜寻专家 更新时间:2023-10-31 23:02:47 24 4
gpt4 key购买 nike

我正在寻找一种方法来定期执行后台事件,其中事件的执行时间可能会超过轮询间隔。

在 Java 术语中,我会使用 Executor.scheduleWithFixedDelay .这确保了仅在运行的任务完成后才调用后续调用,因此在任何给定时间只有一个任务实例正在运行,并且它将始终等待所需的时间间隔,然后再次轮询。

目前,我需要记住让每个事件在完成后自行重新安排。是否有实现相同功能的 node.js/javascript 库?

最佳答案

如果您只想让一个简单的函数每隔几秒运行一次,您可以使用 setInterval

setInterval 将安排在指定的固定时间间隔内调用您的回调。如果您的回调需要更长的时间,那么完成等待的“延迟”调用将尽快运行。如果您需要更长的时间然后完成两个间隔,那么它会忽略较旧的“滴答声”并仅保留最新的“滴答声”。

var task_is_running = false;
setInterval(function(){
if(!task_is_running){
task_is_running = true;
do_something(42, function(result){
task_is_running = false;
});
}
}, time_interval_in_miliseconds);

有关 setInterval 的详细解释以及与 setTimeout 的比较,请参阅 https://stackoverflow.com/a/731625/90511

关于javascript - 在 node.js 中以固定延迟轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8348644/

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