【发布时间】:2015-06-29 20:50:08
【问题描述】:
我想知道是否有任何方法可以测试 sidekiq 是否在 X 秒内正确执行作业(或将要在 X 秒内执行的作业排入队列),正如 perform_in 调用中指定的那样。
据我所知,文档并没有提到任何允许这样做的模式。在fake 模式下,似乎作业直接添加到队列中,并在drain 调用时立即执行。
【问题讨论】:
标签: ruby rspec sidekiq rspec-sidekiq
我想知道是否有任何方法可以测试 sidekiq 是否在 X 秒内正确执行作业(或将要在 X 秒内执行的作业排入队列),正如 perform_in 调用中指定的那样。
据我所知,文档并没有提到任何允许这样做的模式。在fake 模式下,似乎作业直接添加到队列中,并在drain 调用时立即执行。
【问题讨论】:
标签: ruby rspec sidekiq rspec-sidekiq
如果您处于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
希望对你有帮助!
【讨论】: