我想创建一个只运行一次的synced-cron作业,一旦创建作业,执行时间将是20秒。我该如何编写解析器?
答案 0 :(得分:4)
Meteor.setTimeout can be run on the server
如果你想在服务器启动后运行20秒,你可以这样做
if(Meteor.isServer){
var job = function(){};
Meteor.startup(function(){
Meteor.setTimeout(job, 20000);
});
}
如果您使用synced-cron,则可以使用SyncedCron.remove(jobName)
。请参阅Synced Cron Docs
if(Meteor.isServer){
SyncedCron.add({
name: 'Run in 20 seconds only once',
schedule: function(parser) {
// parser is a later.parse object
return parser.text('every 20 seconds');
},
job: function() {
// do something important here
SyncedCron.remove('Run in 20 seconds only once');
}
});
Meteor.startup(function(){
SyncedCron.start();
});
}
答案 1 :(得分:3)
根据doc:
要安排一次性(即非经常性)事件,请创建一个带有的作业 像这样安排
parser.recur().on(date).fullDate();
因此,您可以设置parser.recur().on(new Date()+1000*20).fullDate()
之类的内容来执行一次作业。