Sidekia 测试 w=10=sh

Sidekiq testing perform_in

我想知道是否有任何方法可以测试 sidekiq 是否按照 perform_in 调用中指定的那样在 X 秒内正确执行作业(或将要在 X 秒内执行的作业排入队列)。

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

如果您处于 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

希望对您有所帮助!