こんにちは、株式会社ベストティーチャーでサーバーサイドエンジニアとして働き出したばかりのタワラです。
業務ではじめて学んだTipsを紹介したいと思います。
今回はrakeタスクを作成してHerokuで動作確認をする手順です。
Rakeタスクを実装する手順
Tips1. ローカルでRakeタスクを作成する際には、Rails.loggerを活用する
こんな感じでコードを書いていたのですが、、、キャッシュを問い合わせるだけだから、これではログに何の情報も出ないな、動作確認はどうしよう、、、と思っているところ、、、
namespace :hogehoge do
desc "適当な説明をいれる"
task :foobar => :environment do
Rails.cache.fetch('hoge')
end
end
先輩「Rails.loggerを使うんだ!」
ボク「なるほど!」
namespace :hogehoge do
desc "適当な説明をいれる"
task :foobar => :environment do
Rails.logger.info('foobar started!')
Rails.cache.fetch('hoge')
Rails.logger.info('foobar finished!')
end
end
このように記述しておけば、例えばログに結果が出ない場合の処理でも、rakeタスクの作業確認ができます。こんなふうに↓
略
foobar started!
foobar finished!
略
きちんと動作していることが一目瞭然なのですごい便利!
Tips2. Heroku上で確認するときはアプリ名を指定する
続いて、Heroku上で動作確認をする必要があります、↓のコマンドでrakeタスクを走らせることはできますが、、、
heroku run rake hogehoge:foobar
先輩「ちょっとお待ち!」
先輩「オプションでプロジェクト名を指定するのを忘れないで!」
heroku run rake hogehoge:foobar -a omosiro-project
先輩「きちんとrakeタスクを起動する対象のプロジェクトなのかを確認しよう!」
先輩「こういうことでバグが起きる可能性はゼロじゃないからね」
ボク「なるほど!」
終わりに
今回のTipsはこの2つ!
Tips1. ローカルでRakeタスクを作成する際には、Rails.loggerを活用する
Tips2. Heroku上で確認するときはアプリ名を指定する
業務ではやはり学ぶことが多いです。
本記事が業務駆け出しの方などの役に立てば幸いです。