14
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

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

実行環境

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
14
Help us understand the problem. What are the problem?