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
と指定したところ問題なくデーモン化することができるようになりました。