実行環境
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