在Node.js中,setTimeout可靠吗?

时间:2015-04-16 05:37:00

标签: javascript node.js

我需要执行很多" setTimeouts" 60秒基本上,我创建了一个数据库记录,从现在起60秒后,我需要检查数据库记录是否已更改。

我不想实施一个"工作队列"因为它是如此简单,我绝对需要在60秒左右检查它。

它可靠,还是会引起问题?

2 个答案:

答案 0 :(得分:4)

当您使用setTimeoutsetInterval时,唯一的保证是代码不会在强制编程时间之前执行

然而,它可以稍微开始,因为当时钟滴答时正在执行的其他代码(换句话说,在处理超时或间隔事件的事件处理过程中其他代码不会被中断)。

如果您的代码中没有长时间的阻止处理,则意味着定时事件将相当准确。如果您使用长时间阻止呼叫,那么节点可能不是正确的工具(它是围绕避免阻止"同步"呼叫的想法而设计的。)

答案 1 :(得分:1)

你应该尝试使用WorkerTimer.js它更适合处理后台进程,并且比传统的setInterval或Timeout更准确。

它可以作为node.js npm包使用。 https://www.npmjs.com/package/worker-timer