每五分钟计划一次Node.js作业

我是node.js的新手 我需要node.js每五分钟查询一次mongodb,获取特定的数据,然后使用socket.io,允许订阅的Web客户端访问这些数据。 我已经设置了socket.io部分,当然还有mongo,我只需要知道如何让node.js每五分钟运行一次,然后发送到socket.io。

什么是最好的解决scheme?

谢谢

       

网上收集的解决方案 "每五分钟计划一次Node.js作业"

var minutes = 5, the_interval = minutes * 60 * 1000; setInterval(function() { console.log("I am doing my 5 minutes check"); // do your stuff here }, the_interval); 

将该代码保存为node_regular_job.js并运行它:)

这是如果你有一些asynchronous任务来pipe理你应该怎么做:

 (function schedule() { background.asyncStuff().then(function() { console.log('Process finished, waiting 5 minutes'); setTimeout(function() { console.log('Going to restart'); schedule(); }, 1000 * 60 * 5); }).catch(err => console.error('error in scheduler', err)); })(); 

但是不能保证什么时候开始,但是如果你的工作需要超过5分钟才能同时执行,至less你不会同时运行多个任务。

您仍然可以使用setInterval来安排asynchronous作业,但是如果这样做,则至less应将已处理的任务标记为“正在处理”,以便在前一次完成之前第二次安排作业时,逻辑可能决定不处理仍然处理的任务。