从延迟工作迁移到Sidekiq

时间:2017-07-11 17:43:24

标签: ruby-on-rails ruby sidekiq

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

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

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

2 个答案:

答案 0 :(得分:0)

我对 df.iloc[34,0] 了解不多,但是从您的测试来看,您似乎在测试队列的大小是否为0,对吧?如果是这样,Sidekiq有一个部分解释了你可以做here的一些测试,并且,根据该页面上的说明,关于使用Rspec的配置,你可以做类似的事情

Delayed::Job

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

答案 1 :(得分:0)

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

MyJobWorker.perfom_async(id: 5)

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

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

Sidekiq有一些非常好docs on testing

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