我正在构建一个Node.js应用程序,我有一个每5秒运行一次的setInterval函数。我的问题是这个函数必须在我的任何路由在该文件中工作之前运行。
我需要跑……
包裹 setInterval 在一个简单的方法中,在参数中调用函数,然后创建间隔并返回间隔ID。
setInterval
let intervalId = executeAndRepeat(function(){ //do your thing if(someCondition) return clearInterval(intervalId); }, 5 * 1000); function executeAndRepeat(fcn, intervalTime){ fcn(); return setInterval(fcn, intervalTime); }
您可能希望使用类似的包来查看节点的计划任务 节点的cron 。例如,以下代码将每5秒运行一次
var cron = require('node-cron'); yourCode(); cron.schedule('*/5 * * * * *', () => { yourCode(); }); function yourCode(){ console.log('running every 5 seconds'); }
没有node-cron
yourCode(); setInterval(() => { yourCode(); }, 5 * 1000); function yourCode (){ console.log('running every 5 seconds'); }
在单独的文件中
//code.js module.exports.yourCode= (req, res) =>{ console.log('running every 5 seconds'); } //app.js const yourCode = require ('./code').yourCode; yourCode(); setInterval(() => { yourCode (); }, 5 * 1000);