wheneverのデフォルトroleは:dbなので注意したい
gem wheneverはcrontabをいい感じに設定してくれるgemで、毎日定期的に実行する必要のあるタスクを記述する際に便利なんだけど、デフォルトのroleを設定しないはずなのに、ある開発用サーバから定期的にメールが届くようになっていて困ってしまった。
(いや、実のところそんなに困ってはいなかったんだけど、)どうにも気になったのでよくよくドキュメントを読んでみると以下のような記述が見つかった。
So, for example, with the default whenever_roles of [:db], a job like this would be deployed to all servers with the :db role:
だそうで、whenever_rolesの設定をしていなくても、:db
が使われるので設定しているとデプロイ時にupdate_crontab
が走ってしまうんだそうな。
大抵のケースでは問題ないと思う(たとえばstagingとproductionの両方に同じ:db
を設定する人はいないはずだ)けど、これを忘れていると意図せずwheneverのスケジュールが動いてしまうことがある。というか、今日あった。気をつけたいね。