shoryukenを2.0.2から3.2.3へアップデートした時のメモ
基本的にはGemfileに’aws-sdk-sqs’を追記して、bundle update shoryuken
を実行するだけです。
ただし、起動時に-Lでログの場所を指定しないといけなくなったので以下エラーと解決方法です。
これまでの設定とアップデート後のエラー
これまでconfigファイルを指定して-d
オプションでデーモン化していたのですが、
RAILS_ENV=staging bundle exec shoryuken -R -C /var/www/app/staging/current/config/shoryuken.yml -d
アップデートしたところ、shoryuken.ymlでlogfileを指定しているにも関わらず
[FAIL] You should set a logfile if you're going to daemonize
のようなエラーが出てしまいました。
設定していたshoryuken.yml
---
aws:
access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
region: <%= ENV['AWS_REGION'] %>
receive_message:
attribute_names:
- ApproximateReceiveCount
- SentTimestamp
pidfile: ./tmp/pids/shoryuken.pid
logfile: ./log/shoryuken.log
concurrency: 10
delay: 0
queues:
- [staging_mailers, 1]
- [staging_bounce, 1]
コードを見てみたところ、configを読み込む前にチェックをしているようなので-L
オプションを使いログの場所を指定する必要がありそうです。
正しい起動方法
そこで、
RAILS_ENV=staging bundle exec shoryuken -R -C /var/www/app/staging/current/config/shoryuken/staging.yml -d -L /var/www/app/staging/current/log/shoryuken.log
と指定したところ問題なくデーモン化することができるようになりました。