Ruby on rails 从延迟作业迁移到Sidekiq
我正在从延迟的工作迁移到Sidekiq。我已经有了一些规范,我还想修改它们,使之与sidekiq兼容Ruby on rails 从延迟作业迁移到Sidekiq,ruby-on-rails,ruby,sidekiq,Ruby On Rails,Ruby,Sidekiq,我正在从延迟的工作迁移到Sidekiq。我已经有了一些规范,我还想修改它们,使之与sidekiq兼容 it { expect(Delayed::Job.select{|job| job.handler.match(/MyJob/)}.size).to be 0 } 这基本上检查是否没有安排MyJob DelayJobs。我怎样才能在sidekiq的同一份工作中测试同样的东西 我对延迟::作业了解不多,但从您的测试来看,似乎您正在测试队列的大小是否为0,对吗?如果是这样的话,Sidekiq会有一
it { expect(Delayed::Job.select{|job| job.handler.match(/MyJob/)}.size).to be 0 }
这基本上检查是否没有安排MyJob DelayJobs。我怎样才能在sidekiq的同一份工作中测试同样的东西 我对延迟::作业了解不多,但从您的测试来看,似乎您正在测试队列的大小是否为0,对吗?如果是这样的话,Sidekiq会有一个部分解释您可以做的一些测试,并且,根据页面上的说明,关于您使用Rspec的配置,您可以做如下操作
it { expect(Delayed::Job.select{|job| job.handler.match(/MyJob/)}.size).to be 0 }
it{expect(MyJob.jobs.size).to_eql 0}
另外,如果您喜欢更多的测试选项,请查看。和
Sidekiq
如果您使用的是为特定工作设置自己的工作人员的基本用法,即MyJobWorker
。然后在代码中,您可以这样使用它:
MyJobWorker.perfom_async(id: 5)
然后,在您的规范中,只需断言工人拥有相同数量的作业即可:
it { expect(MyJobWorker.jobs.size).to be(0) }
Sidekiq
有一些不错的功能
为了给出更具体的答案,请包含更多关于如何设置Sidekiq
工作人员以及如何使用工作人员的代码