2012-06-25 12 views
13

Zastanawiam się nad tworzeniem notyfikatora zegarowego Hubota (pomyśl "It's 5, time to home", ale mniej irytujące iz innego powodu). Jaki jest najlepszy sposób robienia czegoś takiego w skrypcie Hubota?Poproś Hubota o rozmowę o określonej godzinie?

[edit] Oto przykład przy użyciu węzła-crona:

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 

zależności:

"cron": "0.3.3", 
"time": "0.8.2" 
+3

"Jest godzina piąta, wyciągnij maszynę margarita!" –

+0

Czy ten kod powoduje, że cronJob uruchamia się automatycznie po uruchomieniu Hubota? – Hlung

+0

@Hlung tak, po wczytaniu skryptu. – wrtsprt

Odpowiedz

8

użyłbym Node-cron. Jest dość elastyczny i dobrze pasuje do twojego przypadku użycia.

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

+0

Wygląda na to, że pomogłoby to. Spojrzę na to. – NickAldwin

+1

Działa to naprawdę dobrze. Wielkie dzięki! – NickAldwin

+0

Czy to działa? Czy możesz podać próbkę? Dzięki! –

6

Właśnie natknąłem się na hubot-cron.

Pozwala to zaplanować wiadomości w hubocie, ale niestety nie utrzymuje zadań przez ponowne uruchomienie.

+5

Witam, napisałem hubot-cron. Zapisuje on twoje zadania w 'robot.brain', co oznacza, że ​​utrzymuje dane przez restart, dopóki używasz trwałego magazynu danych, takiego jak Redis. – miyagawa