[Rails5]Herokuでtaskを実行する

Rails5 と herokuの組み合わせがなかったような気がするので、やって見た。

主にはRailsコマンドでやってみたという話。

Rails(めっちゃ基本)

参考

https://qiita.com/yoshiokaCB/items/c97ba878469701c3d99b

コマンドとか

$ rails g task test_task update_user

libs/tasks/test_task.rake が作成される

namespace :test_task do
  desc "タスクの説明を書きます。"
  task update_user: :environment do
  end

end

引数とかの説明は参考URLを参照

$ rails -vT
・・・省略・・・
rails test # Runs all tests in test folder
rails test:db # Run tests quickly, but also reset db
rails test_task:update_user[user_id] #タスクの説明を書きます。
rails time:zones[country_or_offset] # List all time zones, list by two-letter country code (`rails time:zones[US]`), or list by UTC offset (`rails ti...

タスクに書いたdescが表示される

$ rails test_task:update_user[1]

herokuの設定(ブラウザ)

Add-onを追加

Resources > Add-ons

検索窓からHeroku Schedulerを入力し選択

Standard – Free (それしか選択できない。dynoのせいなのか、これしか存在しないのかは不明)

Provision(準備とか調達の意味)

クレジットカードの登録をする必要がある。

Free dynoを使っていれば、有料になることはないと思う。

スケジューラ登録

Schedule recurring tasks for your appと表示されているはず。

Add new jobをクリック

タスクを実行するコマンド(rails test_task:update_user[1])を入力

すぐ試したいなら

FREQUENCY で Every 10 minuitesを選択

待てばできているはず。

公式ドキュメント

https://devcenter.heroku.com/articles/scheduler

 


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です