shoryuken gemをアップデートする

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

と指定したところ問題なくデーモン化することができるようになりました。