Hubotで定期タスクを動かす

  • 88
    Like
  • 0
    Comment
More than 1 year has passed since last update.

Hubot上でcronを動かした時のメモ。
毎日、10時に朝会の連絡をするcronを設定してみます。

準備

node-cronが必要なのでインストールする。

% npm install cron --save

node-cronのドキュメントによると次のような記法になるみたいです。

var CronJob = require('cron').CronJob;
new CronJob('* * * * * *', function(), null, true, "Timezone");

Timezoneは指定しなくても問題ないが、使う場合はtimeモジュールが必要とのこと。

% npm install time --save

※ Herokuであれば環境変数の指定でTimezoneを変更できるので、そちらで指定してもいいっぽい。

% heroku config:add TZ=Asia/Tokyo

スクリプト作成

node-cronのドキュメントを参考に、coffeescriptを書く。

cron.coffee
cron = require('cron').CronJob

module.exports = (robot) ->
  new cron '0 0 10 * * 1-5', () =>
    robot.send {room: "#general"}, "朝会だお"
  , null, true, "Asia/Tokyo"