1

HerokuでUnicornを使用するように切り替えました。また、delayed_jobからresqueに切り替えて、http://bugsplat.info/2011-11-27-concurrency-on-heroku-cedar.htmlで説明されているセットアップを使用します

これから私が理解していないのは、config /unicorn.rbの方法です。

worker_processes 3
timeout 30

@resque_pid = nil

before_fork do |server, worker|
  @resque_pid ||= spawn("bundle exec rake " + \
  "resque:work QUEUES=scrape,geocode,distance,mailer")
end

に変換されます:

「これにより、実際には各Webダイノで6つのプロセスが発生します。1つのユニコーンマスター、3つのユニコーンWebワーカー、1つのレスクワーカー、1つのレスクチャイルドワーカーが実際にジョブを処理しています。」

実際に何人の労働者がバックグラウンドジョブを処理しますか?1または2?

レスキューワーカーの数を増やしたいとしましょう-何を変更しますか?

4

1 に答える 1

1

このブロックを実行すると、ユニコーン マスターが既に実行されており、さらにファイルの先頭で指定した 3 つの Web ワーカーがあり、下のブロックがまだ開始されていない場合は、1 つの Resque ワーカーを起動します。

Resque は、実際に作業を実行するときに子ワーカーを自動的に起動すると推測しています。

別の Resque ワーカーが必要な場合は、次のようにします。

worker_processes 3
timeout 30

@resque_pid = nil
@resque_pid2 = nil

before_fork do |server, worker|
  @resque_pid ||= spawn("bundle exec rake " + \
  "resque:work QUEUES=scrape,geocode,distance,mailer")
  @resque_pid2 ||= spawn("bundle exec rake " + \
  "resque:work QUEUES=scrape,geocode,distance,mailer")
end

Resque での私の経験では、上記のように別のプロセスを起動するのと同じくらい簡単です。私が持っている唯一の不確実性は、Heroku と、Heroku がより多くのワーカーを与えることにどのように対処するかということです。

于 2012-07-10T14:15:24.373 に答える