Rails Herokuでバッチ処理実行


Rails Taskの記述

Railsを通してコマンド実行したい処理は/lib/tasks/に配置したファイルに記述する

ファイル作成例

/lib/tasks/crawler.rb

class Tasks::Crawler
  def self.execute
    #サイト巡回処理
    #サイトの登録処理 Modelが利用できる
    Site.save()
  end
end

コマンドラインから実行

以下で実行できる

$ rails runner Tasks::Crawler.execute

Herokuで定期的に実行する

Herokuで定期的に実行するには無料のHeroku Schedulerのadd onを利用する

Add Jobから実行間隔、10分間1時間1日と開始時刻を選択し、Run Commandに上記の実行コマンドrails runner Tasks::Crawler.executeを入力すればよい。

f:id:letitride:20190621222433p:plain