Заставить Hubot говорить в определенное время?

Я думаю о том, чтобы сделать уведомитель на основе часов Hubot (думаю, «5, пора домой!», но менее раздражающий и по другой причине). Как лучше всего сделать что-то подобное в сценарии Hubot?

[изменить] Вот пример использования node-cron:

TIMEZONE = "America/New_York"
QUITTING_TIME = '0 0 17 * * 2-6' # M-F 5pm
ROOM = "Dev"

cronJob = require('cron').CronJob

module.exports = (robot) ->
        gohome = new cronJob QUITTING_TIME,
                ->
                        robot.messageRoom ROOM, "It's 5!  Go home!"
                null
                true
                TIMEZONE

зависимости:

"cron": "0.3.3",
"time": "0.8.2"

person NickAldwin    schedule 25.06.2012    source источник
comment
делает ли этот код автоматическим запуск cronJob при запуске Hubot?   -  person Hlung    schedule 11.10.2012
comment
@Hlung да, когда скрипт загружен.   -  person wrtsprt    schedule 11.09.2013
comment
У меня были странные проблемы с messageRoom, не работающим в обратном вызове задания cron. В итоге я использовал robot.send.   -  person wrtsprt    schedule 11.09.2013


Ответы (2)


Я бы использовал node-cron. Он довольно гибкий и хорошо подходит для вашего варианта использования.

https://github.com/ncb000gt/node-cron

person Swift    schedule 25.06.2012

Я только что наткнулся на hubot-cron.

Это позволяет планировать сообщения в hubot, но, к сожалению, не сохраняет задания при перезапуске.

person wrtsprt    schedule 02.09.2013
comment
Привет, я написал hubot-cron. Он сохраняет ваши задания в robot.brain, что означает, что он сохраняет данные при перезапусках, пока вы используете постоянное хранилище данных, такое как Redis. - person miyagawa; 01.04.2014