cronでtimezoneごとに実行

日本語以外の言語をサポートしてるシステムで、cronを使って通知を送りたいけど、JSTで送ってしまうと深夜の時間帯に送ってしまうことになりかねないよね。

ってことで、cronをタイムゾーンごとに実行できないか調べていたら見つけたので簡単に書いてみた。

これを使います。 github.com

コード

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

new CronJob('0 19 * * *', function() {
    console.log("東京は夜の七時");
}, null, true, "Asia/Tokyo");

new CronJob('0 7 * * *', function() {
    console.log("リオは朝の七時");
}, null, true, "America/Sao_Paulo");

時間を弄ってすぐ実行されるようにする

# date -s "07/2 18:59:55 2018"
2018年  7月  2日 月曜日 18:59:55 JST

起動

# nodejs cron.js
東京は夜の七時
リオは朝の七時

良い感じ、本当はpythonで似たようなのが欲しいけどもすぐ見つからなかった。ググり方が悪い説。

業務がpython, DjangoなのでAPI叩く感じになりそう。