【问题标题】:migrating from Delayed Jobs to Sidekiq从延迟作业迁移到 Sidekiq
【发布时间】:2017-12-15 22:00:16
【问题描述】:

我正在从延迟作业迁移到 Sidekiq。我已经有了一些规范,我也想更改它们以与 sidekiq 兼容。

it { expect(Delayed::Job.select{|job| job.handler.match(/MyJob/)}.size).to be 0 }

这基本上检查没有安排 MyJob DelayJobs。我如何在 sidekiq 中为相同的工作测试相同的东西。

【问题讨论】:

    标签: ruby-on-rails ruby sidekiq


    【解决方案1】:

    我对@9​​87654323@ 了解不多,但从您的测试来看,您似乎正在测试您的队列大小是否为 0,对吧?如果是这样,Sidekiq 有一个部分解释了您可以执行的一些测试here,并且根据该页面上的说明,关于您使用 Rspec 的配置,您可以执行类似的操作

    it {expect(MyJob.jobs.size).to be_eql 0 }

    另外,如果您喜欢更多测试选项,请查看this gem

    【讨论】:

      【解决方案2】:

      使用Sidekiq,如果您使用的是为特定工作设置自己的工人的基本用法,即MyJobWorker。然后在代码中你会像这样使用它:

      MyJobWorker.perfom_async(id: 5)
      

      那么在你的规范中,它就像断言工人有那么多工作一样简单:

      it { expect(MyJobWorker.jobs.size).to be(0) }
      

      Sidekiq 有一些不错的docs on testing

      为了给出更具体的答案,请提供更多关于您如何设置Sidekiq 工作人员以及如何使用工作人员的代码。

      【讨论】:

        猜你喜欢
        • 2012-10-29
        • 1970-01-01
        • 2013-10-30
        • 2011-02-23
        • 1970-01-01
        • 2016-03-29
        • 2012-04-20
        • 2014-02-09
        • 1970-01-01
        相关资源
        最近更新 更多