每五分钟安排一次Node.js作业

Pau*_*aul 23 mongodb node.js socket.io

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

什么是最好的解决方案?

谢谢

ale*_*lex 73

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);
Run Code Online (Sandbox Code Playgroud)

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

  • 如果我想要每 5 分钟运行一次的代码运行时间超过 5 分钟,会发生什么情况?会被解雇多次吗? (2认同)
  • 使用`setInterval()`yes(如果它是异步的,否则它将阻塞所有内容),使用`setTimeout()`并在结束时再次递归调用该函数(当它完成时)no. (2认同)

小智 10

你可以使用这个包

var cron = require('node-cron');

cron.schedule('*/5 * * * *', () => {
  console.log('running a task 5 minutes');
});
Run Code Online (Sandbox Code Playgroud)