It is an example of running Node.js script, which is triggered in every certain period(day/hour/min). crontab in Linux is doing same job but it happens to me which can’t fulfill my purpose:

To use crontab to trigger Node.js script:

30 6 1 * * /usr/local/bin/node /home/steve/example/script.js

However, the problem of two above method is messing up the path in __*Node.js*__, all the command is in absolut path, but the Node.js script uses relative path to import/require other modules. It causes the error of file not found. So we need to execute the cron under the directory of Node.js script, which contains all the module which will be used.

There is the example git, which can help understand more.

Install

This is the lib is used to keep the cron-job alive, which triggers the node script at certain time.

$ npm install --save node-cron

Usage

Import node-cron and schedule a task:

Read more

var cron = require('node-cron'); cron.schedule('* * * * *', function(){  console.log('running a task every minute');});

Run Node.js script in cron

Start a Daemon, and run

$ node cronNodeScript

Exceute scritp every 1 min

//exceute every 1 mincron.schedule('*/1 * * * *', function(){....});

Exceute $ node script1.js and npm run script -- PeterGood every 1 min

//exceute every 1 mincron.schedule('*/1 * * * *', function(){var shell = require('./child_helper');

var commandList = \[  
    "node script1.js",  
    "npm run script -- PeterGood"  
\]

shell.series(commandList , function(err){  
//    console.log('executed many commands in a row');   
    console.log('done')  
});  

});

Reference: