我想知道无论如何都要测试sidekiq是否在X秒内正确执行作业(或者在X秒内将作业排队),如perform_in
调用中所指定的那样。
据我所知,文档并未提及允许此操作的任何模式。在fake
模式下,作业似乎直接添加到队列中,并在drain
调用时立即执行。
答案 0 :(得分:2)
如果您处于fake
模式,则可以使用MyWorker.jobs
访问您的Workers工作。
如果您使用perform_in
安排了作业,则应该有一个字段at
为您提供执行时间(浮动)。
我沿着
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
我希望有所帮助!