【问题标题】:Sidekiq testing perform_inSidekiq 测试 perform_in
【发布时间】:2015-06-29 20:50:08
【问题描述】:

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

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

【问题讨论】:

    标签: ruby rspec sidekiq rspec-sidekiq


    【解决方案1】:

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

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2014-10-04
      • 1970-01-01
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 2021-10-31
      • 2013-05-23
      • 1970-01-01
      相关资源
      最近更新 更多