LoginSignup
15
12

More than 5 years have passed since last update.

ruby on railsでShoryukenを使うときにGod(神様)を使って監視をする

Last updated at Posted at 2015-11-29

実行環境

ruby 2.2.0
Rails 4.2.1
OS X EL Capitan

下準備

Gemfileに下記の追記を行う

Gemfile
gem "shoryuken"            # sqs worker
gem "god"                  # A Process Monitoring
bundle install

補足ですが、bundle installに失敗する人は、下記のコマンドで解決出来るかもしれないです。
(私は数時間ドハマリしました。)

brew install ghc

設定ファイルを作成

config/shoryuken.yml
aws:
  access_key_id: "hogehoge"
  secret_access_key: "hogehoge"
  region: "ap-northeast-1"
concurrency: 25
delay: 5
queues:
  - ["sqs_queue", 1]
config/shoryuken.god
RAILS_ROOT = File.expand_path(File.dirname(__FILE__) + '/../')

God.watch do |w|
  w.name = "shoryuken"
  w.env = { 'RAILS_ROOT' => "#{RAILS_ROOT}",
            'RAILS_ENV' => "development" }
  w.start = "cd #{RAILS_ROOT} && bundle exec shoryuken -R -C ./config/shoryuken.yml -L ./log/shoryuken.log -P ./log/shoryuken.pid &"
  w.pid_file = File.join(RAILS_ROOT, "log/shoryuken.pid")
  w.keepalive
end

実行と確認

実行
bundle exec god -c config/shoryuken.god -D
% tail -f log/shoryuken.log
yyyy-mm-ddT12:47:59Z 9939 TID-ouqa6vpp8 INFO: Rails environment loaded
yyyy-mm-ddT12:48:02Z 9939 TID-ouqb0ogb8 INFO: Starting

kill `cat log/shoryuken.pid`
log/shoryuken.logで再度プロセスが立ち上がることを確認
yyyy-mm-ddT13:13:54Z 9939 TID-ouqa6vpp8 INFO: Got TERM signal
yyyy-mm-ddT13:13:54Z 9939 TID-ouqa6vpp8 INFO: Received TERM, will shutdown down
yyyy-mm-ddT13:13:54Z 9939 TID-ouqb0ogb8 INFO: Shutting down 25 quiet workers
yyyy-mm-ddT13:13:54Z 9939 TID-ouqb0ogb8 ERROR:
yyyy-mm-ddT13:14:07Z 12128 TID-oxcm0ccf0 INFO: Rails environment loaded
yyyy-mm-ddT13:14:08Z 12128 TID-oxcnb0v1k INFO: Starting

ちなみにgodのプロセス停止は下記のコマンド

停止
bundle exec god terminate

終わり

最小限の動作確認まですることが出来ました。
Godにはいろいろな設定があるようなので、もう少しいろいろと検証してみる必要がありそうです。

余談ですが、
検証の途中で、godを起動した瞬間に100以上のshoryukenが立ち上がり、再起動しながら動作検証をした時には、パソコンを投げそうになりました。

参考

shoryuken(github) https://github.com/phstc/shoryuken
god公式ページ http://godrb.com/
god(github) https://github.com/mojombo/god

15
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
12