Sidekiq发送作业以测试队列而不是开发队列



我已经添加了Specs以使用RSPEC覆盖Sidekiq作业,但是现在,当我启动Rails Server,Console或Just Sidekiq时,我有此警告:

WARNING: Sidekiq testing API enabled, but this is not the test environment.  Your jobs will not go to Redis.

和工作确实没有出现。

如何切换回开发API?

您可能想检查您是否在组中包含了GEM'RSPEC-SIDEKIQ':开发。如果是这种情况,请将其从那里删除,仅在:test组中调用。

在上面的托马斯(Thomas)答案上跟进,如果您在Gemfile中找不到rspec-sidekiq GEM,请检查项目代码的任何部分(例如Sidekiq Initializer)是否具有这样的代码:

 require 'sidekiq/testing'
 Sidekiq::Testing.inline!

我们在这里遇到了同样的问题,并且由于我们的开发和测试ENVS在Dockerized容器中共享相同的宝石,因此我们必须以不同的方式解决:

  1. 关闭rspec-sidekiq gem in gemfile的自动需求
gem "rspec-sidekiq", ~> "3.1.0", require: false
  1. 仅在spec/rails_helper.rb
  2. 上需要它
require "rspec-sidekiq"

我在使用 sidekiqswarm并预加载 test gems时发现了这个错误。

一旦我做出了更改,它就完美了。

之前:

worker: SIDEKIQ_COUNT=5 SIDEKIQ_MAXMEM_MB=300 SIDEKIQ_PRELOAD=default,development,test sidekiqswarm -C config/sidekiq.yml

之后:

worker: SIDEKIQ_COUNT=5 SIDEKIQ_MAXMEM_MB=300 SIDEKIQ_PRELOAD=default,development sidekiqswarm -C config/sidekiq.yml```

最新更新