Rails標準のジョブを処理する仕組み
Active Jobとは
Rails標準のジョブを処理する仕組み
指定した個数のジョブが登録されているか確認
説明
指定した個数のジョブが登録されているか確認
使い方
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
ソースコード
指定した引数でジョブを登録
説明
指定した引数でジョブを登録
使い方
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