Rails5 と herokuの組み合わせがなかったような気がするので、やって見た。
主にはRailsコマンドでやってみたという話。
Rails(めっちゃ基本)
参考

Rake タスクの作り方(引数を複数設定してみる) - Qiita
やったこと
rake タスクをジェネレート
引数付きのrakeタスクを作成
※ rakeタスクの作り方を毎回忘れるのでメモ!
rake タスクファイルをジェネレートする
$ rails g task task_nam...
コマンドとか
$ 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を選択
待てばできているはず。
公式ドキュメント
Heroku Scheduler | Heroku Dev Center
Scheduler is a free Heroku add-on for running jobs on your app at scheduled time intervals, much like cron in a traditional server.
コメント