1

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

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

4

1 回答 1

2

如果您处于fake模式,您可以使用MyWorker.jobs.

如果您安排您的工作,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

我希望这会有所帮助!

于 2015-09-08T14:43:39.043 回答