2

神の監視システムを使用して 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 ワーカーをデプロイする別の方法はありますか?

4

3 に答える 3

1

「プロセスが実行されていません」という問題を解決した重要なことは、dir属性を適切に定義することでした。

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

これで問題は解決しました。

于 2014-07-16T10:06:51.623 に答える
0

私は同様の問題に直面しました。sidekiq.yml でキューと同時実行の設定を指定することで解決しました。あなたの神のスタートでは、

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

Sidekiq Github には、yml 構成の例があります。次のようになります。

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

しかし、あなたがすでに解決策を見つけていることを願っています。

于 2012-08-21T09:43:43.370 に答える
-1

あなたのコードを使用して、独自の神 / sidekiq セットアップを展開しましたが、この変更により機能するようになりました。私はあなたを次のものに置き換えましw.startた:

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

(もちろん、これらのキューは私がたまたま使用したものであり、関係ありません)

于 2012-07-17T16:00:34.253 に答える