Sidekiq测试perform_in

时间:2015-06-29 20:50:09

标签: ruby rspec sidekiq rspec-sidekiq

我想知道无论如何都要测试sidekiq是否在X秒内正确执行作业(或者在X秒内将作业排队),如perform_in调用中所指定的那样。

据我所知,文档并未提及允许此操作的任何模式。在fake模式下,作业似乎直接添加到队列中,并在drain调用时立即执行。

1 个答案:

答案 0 :(得分:2)

如果您处于fake模式,则可以使用MyWorker.jobs访问您的Workers工作。

如果您使用perform_in安排了作业,则应该有一个字段at为您提供执行时间(浮动)。 我沿着

行写了一个rspec测试
subject { MyWorker.jobs.first }    
it 'is scheduled in 1 minute' do
  span = subject['at'] - Time.now.to_f
  expect(span.round).to eq 60
end

我希望有所帮助!