2015-08-03 2 views
0

Я использую express.js и 'cron' модуль для автоматического обновления db, поэтому я не знаю, где я должен добавить свой код инициализации cron, поэтому я добавил его в свой 'bin/www' , но после того, как сервер запустил это, спам, как и каждые секунды (но мне нужно каждые 2 минуты), но если я изменил 2 на 5, его никогда не запускали. вот мои хроны обновления ЯШИ:node.js cron job in web app

var catalogUpdater = require('../utils/catalogUpdater'); 
var descriptionDownloader = require('../utils/descriptionDownloader'); 

var CronJob = require('cron').CronJob; 

var job = new CronJob('* */2 * * * *', function(){ 
    console.log('started'); 

}, 
function(){console.log('stop')}, 
true); 

module.exports = job; 

вот мой 'бен/WWW' Код:

var app = require('../app'); 
var debug = require('debug')('shopnagby:server'); 
var http = require('http'); 
var config = require('../config'); 

var job = require('../cron/updateCron'); // include job updateCron to server startup; 

/** 
* Get port from environment and store in Express. 
*/ 

var port = normalizePort(config.get("port")); 
app.set('port', port); 

/** 
* Create HTTP server. 
*/ 

var server = http.createServer(app); 

/** 
* Listen on provided port, on all network interfaces. 
*/ 

server.listen(port); 
server.on('error', onError); 
server.on('listening', onListening); 
..... 

Где я должен поместить мое updateCron сценарий?

ответ

1

У вас неправильный синтаксис cron. Correct syntax имеют только 5 полей:

   field   allowed values 
       -----   -------------- 
       minute   0-59 
       hour   0-23 
       day of month 0-31 
       month   0-12 (or names, see below) 
       day of week 0-7 (0 or 7 is Sun, or use names) 

Для запуска через каждые две минуты:

var job = new CronJob('*/2 * * * *', function(){ 
    console.log('started'); 
}, 
function(){console.log('stop')}, 
true);