node-schedule を使って Node.js で定期処理を行う
node-schedule という npm パッケージを使うと、Node.js で書いた一連の処理を定期実行できる。
まずはインストールしてみよう。
# 作業ディレクトリを作って npm init
$ mkdir example-node-schedule && cd $_ && npm init -y
$ npm install --save node-schedule
続いて、適当に main.js
を作り、以下のように実装してみる。
const schedule = require('node-schedule');
const myJob = schedule.scheduleJob('*/5 * * * * *', (fireDate) => {
console.log('定期実行', fireDate);
});
あとはコレを実行してみる。
$ node main.js
すると、コンソールに5秒おきに「定期実行」の文言が出力されるだろう。
scheduleJob()
の第一引数で、定期実行するタイミングを指定するワケだが、コレは crontab の書式で指定できる。他にも Date
オブジェクトや連想配列での指定もできる。
何かのタイミングでジョブを停止させるには、scheduleJob()
の戻り値を格納した変数 myJob
を指定して、
myJob.cancel();
と叩けば OK。
このパッケージを使えば、例えば Express サーバを起動すると同時に、毎日0時に実行するバッチ処理を定義したりもできるワケだ。簡単なバッチ処理ならコレで回せて便利だ。