8.2 コールバック

ジョブの実行前に処理を追加する

ActiveJobの以下のコールバックがあります。

コールバック 説明
before_enqueue キューに登録される前
around_enqueue キューに登録される時
after_enqueue キューに登録された後
before_perform 処理が実行される前
around_perform 処理が実行される時
after_perform 処理が実行された後

以下の例ではジョブの実行前にPostのデータをCSVにエクスポートしています。

class PageviewCleanupJob < ApplicationJob
  queue_as :default

  before_perform do
    posts = Post.all
    export_to_csv(posts) # csvにエクスポート
  end

  def perform(*args)
    # 実行したい処理を書く
    Post.update_all(pageview: 0)
  end
end

ジョブの実行後に処理を追加する

以下の例ではジョブの実行後に新しいジョブを登録しています。

class PageviewCleanupJob < ApplicationJob
  queue_as :default

  after_perform do
    PageviewCleanupJob.set(wait: 1.week).perform_later # 新規にジョブを登録
  end

  def perform(*args)
    # 実行したい処理を書く
    Post.update_all(pageview: 0)
  end
end

results matching ""

    No results matching ""