古いバージョンのドキュメントです。最新のバージョンはRails7.0.0

Railsドキュメント(v6.0.2.1)

Rails標準のジョブを処理する仕組み

Active Jobとは

Rails標準のジョブを処理する仕組み

指定した個数のジョブが登録されているか確認

layout: page

説明

指定した個数のジョブが登録されているか確認

使い方

assert_enqueued_jobs(個数 [, オプション])

オプション

オプション 説明
:only 指定したジョブを確認
:except 指定したジョブ以外を確認
:queue キューを指定

指定した個数のジョブが登録されているか確認

assert_enqueued_jobs 0
HelloJob.perform_later('david')
assert_enqueued_jobs 1
HelloJob.perform_later('abdelkader')
assert_enqueued_jobs 2

ブロックで渡す

assert_enqueued_jobs 1 do
  HelloJob.perform_later('cristian')
end

指定したジョブを確認

assert_enqueued_jobs 1, only: LoggingJob do
  LoggingJob.perform_later
  HelloJob.perform_later('jeremy')
end

指定したジョブ以外を確認

assert_enqueued_jobs 1, except: HelloJob do
  LoggingJob.perform_later
  HelloJob.perform_later('jeremy')
end

キューを指定

assert_enqueued_jobs 2, queue: 'default' do
  LoggingJob.perform_later
  HelloJob.perform_later('elfassy')
end

ソースコード

指定した引数でジョブを登録

layout: page

説明

指定した引数でジョブを登録

使い方

assert_enqueued_with([オプション])

オプション

オプション 説明
:job ジョブ
:args ジョブに渡す引数
:at  
:queue キュー

指定した引数でジョブを登録

MyJob.perform_later(1,2,3)
assert_enqueued_with(job: MyJob, args: [1,2,3], queue: 'low')

ジョブに渡す引数を指定

MyJob.perform_later(foo: 'bar', other_arg: 'No need to check in the test')
assert_enqueued_with(job: MyJob, args: expected_args, queue: 'low')

ブロックで渡す

assert_enqueued_with(job: MyJob, args: [1,2,3], queue: 'low') do
  MyJob.perform_later(1,2,3)
end

ソースコード