如何编写20秒后执行的synced-cron作业 - SyncedCron Meteor

时间:2015-09-02 07:09:06

标签: meteor cron laterjs

我想创建一个只运行一次的synced-cron作业,一旦创建作业,执行时间将是20秒。我该如何编写解析器?

2 个答案:

答案 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()之类的内容来执行一次作业。