2016-07-20 8 views
0

私は英雄とサイドキックの仕組みが混乱しています。さて、これは自動的に何とかワーカーダイノで実行し、この処理を行いますherokuとsidekiqは私の主なdynoの外でどのように仕事をしていますか?

SomeWorker.perform_async(some.id) 

:私はのように私のコードで私のsidekiqジョブを実行する私のレールの内側に

web: bundle exec puma -C config/puma.rb 
worker: bundle exec sidekiq -e $RAILS_ENV 

:私のProcfileは次のようになりますか?

「はい」の場合、これをプロセス外で実行することをどのように知っていますか?

私がメインのgitフォルダにいるとき、私はherokuコマンドを実行することができ、これは私のウェブdynoのためのものだと分かっていますが、私のワーカーdynoのログを見るにはどうしたらいいですか? dynoログ?

答えて

2

Procfileをセットアップすると、Herokuに2種類のダイノス:webworkerを設定するように指示します。これらは同じRailsアプリコードを使用していますが、異なるコマンド(bundle exec pumabundle exec sidekiq)で起動している可能性があります。しかし、各タイプのプロセスに必要な多くのVM(dynos)をスケーリングできます。

2つを一緒に保持する接着剤はレディです。 webプロセスからSomeWorker.perform_async(some.id)を実行すると、実行するジョブを記述するレコードがRedisに追加されます。 workerプロセスでは、新しいレコードのRedisを監視してから処理します。

Herokuログは、実行中のすべてのダイノスのログを表示します。したがって、webworkerの両方のプロセスのログが混在していることがわかります。

+1

右。私は英雄がどのように働くかを知らなかったと思う:)どういうわけか、私はそれが同じダイノーでサイドキックを実行することを完全に確信していた。 –

+1

完全に理解するまでに時間がかかります。この本は本当に私を助けてくれました。 http://www.theherokuhackersguide.com/ –

関連する問題