【问题标题】:using god monitoring for sidekiq workers对 sidekiq 工作人员使用上帝监控
【发布时间】:2012-07-01 01:14:19
【问题描述】:

我一直在寻找如何使用上帝监控系统启动sidekiq的配置。下面是我用来启动 sidekiq 的神文件。

rails_env = ENV['RAILS_ENV'] || "production"
rails_root = ENV['RAILS_ROOT'] || "/home/ubuntu/Projects/app"

God.watch do |w|
  w.dir      = "#{rails_root}"
  w.name     = "sidekiq"
  w.interval = 30.seconds
  w.env      = {"RAILS_ENV" => rails_env}
  w.interval = 30.seconds
  w.start = "/home/ubuntu/.rvm/gems/ruby-1.9.3-p0/bin/ruby -f #{rails_root}/ sidekiq -c 25 -q worker,15 -q distributor,5"

  w.uid = 'ubuntu'

  # determine the state on startup
  w.transition(:init, { true => :up, false => :start }) do |on|
    on.condition(:process_running) do |c|
      c.running = true
    end
  end

  # determine when process has finished starting
  w.transition([:start, :restart], :up) do |on|
    on.condition(:process_running) do |c|
      c.running = true
      c.interval = 5.seconds
    end

    # failsafe
    on.condition(:tries) do |c|
      c.times = 5
      c.transition = :start
      c.interval = 5.seconds
    end
  end

  # start if process is not running
  w.transition(:up, :start) do |on|
    on.condition(:process_running) do |c|
      c.running = false
    end
  end
end

当我使用god 命令运行此脚本时,上帝服务器“显示进程未运行”,就好像什么都没发生一样。我相信我没有正确使用w.start 调用sidekiq,

我在开发模式下使用bundle exec sidekiq -c 25 -q worker,15 -q distributor,5,它工作正常。

我错过了什么?是否有不同的方式来部署 sidekiq 工作人员?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 god sidekiq


    【解决方案1】:

    对我来说解决“进程未运行”问题的关键是正确定义dir 属性:

    w.dir = "#{Rails.root}"
    

    这解决了问题。

    【讨论】:

      【解决方案2】:

      我也遇到过类似的问题。 在 sidekiq.yml 下指定队列和并发设置为我解决了这个问题。在你的上帝开始,

      sidekiq -e #{env} -C #{root}/config/sidekiq.yml

      Sidekiq Github 有一个 yml 配置示例。它是这样的:

      ---
      :concurrency: 25
      :queues:
        - [a, 5]
        - [b, 3]
        - [c, 2]
        - [default, 3]
      

      我希望你已经找到了解决方案。

      【讨论】:

        【解决方案3】:

        我刚刚使用您的代码部署了我自己的 god/sidekiq 设置,而这个更改让它对我有用。我将您的 w.start 替换为:

        w.start = "bundle exec sidekiq -q release,1 -q artist,2 -q artists,3 -c 20"

        (当然,这些队列只是我碰巧使用的队列,并不相关)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-03-10
          • 2013-07-10
          • 2015-01-03
          • 2018-11-05
          • 1970-01-01
          • 2012-12-29
          • 2012-10-05
          相关资源
          最近更新 更多