【问题标题】:how to monitor and restart two ruby scripts with God?如何监控和重启两个 ruby​​ 脚本与上帝?
【发布时间】:2016-01-15 23:00:35
【问题描述】:

我已经能够为单个 ruby​​ 脚本运行单个上帝文件:

God.watch do |w|
  w.name = "twilio"
  w.start = "ruby ~/code/site/iron.io/twilio-listen.rb"
  w.keepalive
end

但我有两个脚本,希望上帝看它们(twilio-listen.rb 和 slack-listen.rb)

我该怎么做?

【问题讨论】:

    标签: ruby god


    【解决方案1】:

    您应该能够在同一个上帝配置文件中为两者指定手表。如果您需要一起停止或重新启动它们,您可能还想添加一个名为 listeners 的组。例如,

    God.watch do |w|
      w.name = "twilio"
      w.group = "listeners"
      w.start = "ruby ~/code/site/iron.io/twilio-listen.rb"
      w.keepalive
    end
    
    God.watch do |w|
      w.name = "slack"
      w.group = "listeners"
      w.start = "ruby ~/code/site/iron.io/slack-listen.rb"
      w.keepalive
    end
    

    【讨论】:

    • 我将如何运行它。把代码放在一个god confit文件里就行了?
    • 我实际上是通过对每个块在其自己的文件中使用加载命令来做到这一点的。但它不会重新启动松弛过程
    • gist.github.com/konacaret/057ae01f992e9ec28087 具有我用来监视两个简单脚本的基本设置。我用bundle exec god -c simple.god 启动上帝。 shell_output.txt 显示两个手表都被拾取并用于启动、重新启动和停止脚本。如果您的配置仍然无法正常工作,请使用您的监视文件和配置文件更新问题,我会看看。 FWIW - 我正在使用最新版本的上帝:Version 0.13.7
    • 不错!我按照你的方式而不是加载,它有效!有没有办法发送一个块来重启?当它失败时,我希望我的监听器不仅通过向监听器发送消息来重新启动,它已经重新启动。这太棒了!
    • 您可以尝试添加一些在从:restart:up 的转换时调用的代码,一旦已知进程在重启后启动并运行,就会向侦听器发送一条消息。 God 'Advanced Configuration with Transitions and Events' wiki section 应该为您指明正确的方向。
    猜你喜欢
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 2012-07-01
    相关资源
    最近更新 更多