Ruby on rails Sidekiq伪模式在测试时运行排队工作程序
我目前面临着一个问题,即用sidekiq假模式测试sidekiq worker 我将worker作为对象运行,worker将创建自己,如果它满足某些条件,那么它就是同一个worker 问题是工人被推入作业数组,这将作业数组大小增加1,这是完美的!但它继续运行,并运行的工人以及Ruby on rails Sidekiq伪模式在测试时运行排队工作程序,ruby-on-rails,ruby,rspec,sidekiq,Ruby On Rails,Ruby,Rspec,Sidekiq,我目前面临着一个问题,即用sidekiq假模式测试sidekiq worker 我将worker作为对象运行,worker将创建自己,如果它满足某些条件,那么它就是同一个worker 问题是工人被推入作业数组,这将作业数组大小增加1,这是完美的!但它继续运行,并运行的工人以及 worker = AvailablePromoJobBulkNotificationWorker.new it "will create the next worker after the current worker p
worker = AvailablePromoJobBulkNotificationWorker.new
it "will create the next worker after the current worker performed." do
expect { worker.perform(promo.id) }.to change(AvailablePromoJobBulkNotificationWorker.jobs, :size).by(1)
end
perform\u async
是用于创建作业的方法perform
实际上会运行worker代码。我知道perform
会运行worker,但不应该perform\u async
或perform\u in
只会创建一个作业,而不会运行它?在worker内部,我正在调用AvailablePromoJobBulkNotificationWorker.perform(10.minutes,promo.id)
。它将可用的PromojobBulkNotificationWorker.jobs.size增加1,但它会继续执行它我没有意识到这种行为。这是否意味着我不能做那样的事情?或者它应该可以很好地处理上述场景,而您以前从未遇到过这样的问题?