hubot上的清除计时器重新加载所有脚本

时间:2014-07-08 15:33:45

标签: javascript coffeescript hubot

所以我有一个hubot插件,我写的是以不同的时间间隔提醒用户做某事。我有一个setInterval函数,每5分钟运行一次。问题是当我使用“重新加载所有脚本”时。命令(从这里:https://github.com/github/hubot-scripts/blob/master/src/scripts/reload.coffee)它开始一个新的间隔而不清除旧的间隔。我不确定如何最好地清除旧间隔。重新加载脚本时,我的所有指针都会被覆盖。

1 个答案:

答案 0 :(得分:1)

Mark Lorenz最终向我展示了解决方案。我在重新加载脚本时在机器人上发出了一个事件,然后在脚本中侦听了该事件并杀死了任何超时。

在reload.coffee(PR Submitted

reloadAllScripts = (msg, success, error) ->
  robot = msg.robot
  robot.emit('reload_scripts')
  scriptsPath = Path.resolve ".", "scripts"
  robot.load scriptsPath

在我的剧本中

module.exports = (robot) ->
  robot.on 'reload_scripts', () ->
    clearInterval(Timer) if Timer