2015-07-07 8 views
1

Я хочу добавить функцию, которая будет запускаться в отдельном потоке каждые несколько секунд на сервере.Meteor JS: Фоновый процесс

Я прочитал This post и найти много CRON пакетов, которые могут помочь мне с этим, но я не знаю точно, где они должны быть добавлены в кодеAPI, это, вероятно, потому, что я не совсем понимаю, как они работают с Метеор.

Я думаю, что мой вопрос немного тупой, но, может быть, кто-нибудь скажет мне, где я могу поместить функции CRON-пакетов в код?

ответ

3

Я использую https://atmospherejs.com/percolate/synced-cron в качестве примера задания на работу cron.

Вы бы запустили код этого пакета на сервере (см.: https://github.com/percolatestudio/meteor-synced-cron/blob/master/package.js#L13).

Например, можно запланировать фоновое задание после вызова метода Метеор:

Meteor.methods({ 
    doCron: function() { 
    SyncedCron.add({ 
     name: 'Crunch some important numbers for the marketing department', 
     schedule: function(parser) { 
     // parser is a later.parse object 
     return parser.text('every 2 hours'); 
     }, 
     job: function() { 
     var numbersCrunched = CrushSomeNumbers(); 
     return numbersCrunched; 
     } 
    }); 
    } 
}); 

// Somewhere in your code you need this to start processing jobs. Also on server. 
Meteor.startup(function() { 
    // code to run on server at startup 
    SyncedCron.start(); 
});