我想创建一个只运行一次的同步 cron 作业,一旦创建作业,执行时间将在 20 秒后。我将如何编写解析器?
问问题
2156 次
2 回答
4
如果你想要在服务器启动 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();
});
}
于 2015-09-02T16:02:19.030 回答
3
根据文档:
要安排一次性(即不重复)事件,请使用这样的时间表创建作业
parser.recur().on(date).fullDate();
因此,您可以设置类似parser.recur().on(new Date()+1000*20).fullDate()
执行一次作业的设置。
于 2016-02-20T17:49:26.367 回答