Rails
god
sqs
shoryuken

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

More than 3 years have passed since last update.


実行環境

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