pm2とnode-cronを使えば、node.jsのプログラムを定期実行できる。
しかし、毎日2:00に実行するようスケジューラを設定したが実行されず、かなり困った。
スケジューラは、以下のような設定した。
1 2 3 4 5 6 | const cron = require('node-cron') const launchScraping = require('./modules/test.js') cron.schedule('00 00 2 * * *', () => { test() }) |
cron.schedule()で設定する。
設定値は左から、秒、分、時、日、月、曜日となっている。
僕は毎日2:00に実行したかったため、上記のように設定した。
しかし、pm2 logsコマンドでログを確認しても、実行した形跡は見当たらなかった。
だが一瞬で解決しました。下記のように修正しました。
1 2 3 4 5 6 | const cron = require('node-cron') const launchScraping = require('./modules/test.js') cron.schedule('0 0 2 * * *', () => { test() }) |
0は一個にしないといけないみたい。
あれ、普通のcrontabで設定するときって、00でも大丈夫じゃなかったっけ?まあいいや。動いたから。
ということで、node-cronが思い通りに動かない方は、00にしてないかチェックしてみてください!