Capistranoを使ったRailsアプリケーション配備時に、wheneverで記述したCronジョブを同時にサーバに反映したい場合がある。
この場合、config/deploy.rb
に以下のような記述を挿入すれば、Capistranoがよしなにやってくれるようになる。
require "whenever/capistrano"
だけど、bundlerを使っているような環境だと、Capistranoによる配備中に「whenever: コマンドが見つかりません」と怒られて、配備処理が中断してしまうことがある。
この場合、上記のソースコードを以下のように修正すればいい。
set :whenever_command, "bundle exec whenever"
require "whenever/capistrano"
:whenever_command
というオプションで、wheneverの機能を呼び出すときに実行するコマンドのフォーマットを指定することができる。
あたまにbundle exec
をつけることで、ただしくWheneverで記述したCronジョブがサーバに反映されるようになりました。
めでたしめでたし。