ActiveJobとは?

Active Jobとは?

バックグランドで実行するjobや、キューを操作するためのフレームワークのことです。

$ bin/rails g job hoge
上記のコマンドを実行すると
app/jobs/hoge.rbというjobが作成されます。

# app/jobs/hoge.rb
class HogeJob < ActiveJob::Base
  queue_as :default

  def perform(引数)
    # 後で行う処理を記述する
  end
end
# Jobを定義できたら以下のコードをトリガーとして実行する

# キューに空きができたら実行する
HogeJob.perform_later(引数)

# 1週間後に実行
HogeJob.set(wait: 1.week).perform_later(引数)

# 明日の正午に実行
HogeJob.set(wait_until: Date.tomorrow.noom).perform_later(引数)

アダプタがセットされていない場合は即座にJobが実行されます。

例外

ActiveJobの例外キャッチ方法はrescue_fromの1つのみ提供されている。

rescue_from(ActiveRecord::RecordNotFound) do |exception|
  # 例外処理を記述
end

def perform(引数)
  # 後で行う処理を記述する
end