我正在开发Node.js上的一个项目。我想在自上一个代码执行以来等待五分钟后执行一些条件代码部分。我只需要它一次运行(不是每天或......)。其余的代码将接管,但当它在5分钟后,将执行。我可以做到这一点吗?
编辑:Abdennour TOUMI的代码部分有效。但他用变量表示分钟的方式并不适用于我。所以我根据模块页面中的example进行了以下编辑。
var schedule = require('node-schedule');
var AFTER_5_MIN=new Date(new Date(new Date().getTime() + 5*60000))
var date = new Date(AFTER_5_MIN);
var j = schedule.scheduleJob(date, function() {
if(condition1){
// Runned once --> Thus, you need to cancel it
// code here, than code to run once
j.cancel();
}else{
//it will be repeated
}
});
答案 0 :(得分:2)
* 0 * * * *
- >在该小时的0分钟的每小时。 要在5分钟后开始,您可以计算5分钟后的小时数:
var schedule = require('node-schedule');
var AFTER_5_MIN=new Date(new Date(new Date().getTime() + 5*60000)).getMinutes();
var j = schedule.scheduleJob(`* ${AFTER_5_MIN} * * * *`, function() {
if(condition1){
// Runned once --> Thus, you need to cancel it
// code here, than code to run once
j.cancel();
}else{
//it will be repeated
}
});
答案 1 :(得分:1)
你有什么理由不能使用setTimeout()
吗?
const WAIT_TIME = (60 * 5) * 1000; //5 Minutes
var timer = setTimeout(function(){
console.log('Cron job works!')
}, WAIT_TIME);
/*
* If conditions change in this five minutes and you need to cancel executing
* the callback above, you can clear the timer
* clearTimeout(timer);
*/