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

问题描述 投票:0回答:5

我已经添加了规范来使用 rspec 来覆盖 sidekiq 作业,但是现在,当我启动 Rails 服务器、控制台或只是 sidekiq 时,我会收到此警告:

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

而且工作确实没有排队。

如何切换回开发API?

ruby-on-rails sidekiq
5个回答
29
投票

您可能想检查是否已将 gem 'rspec-sidekiq' 包含在组中:development。如果是这种情况,请将其从那里删除并仅在 :test 组中调用它。


1
投票

按照上面 Thomas 的回答,如果你在 Gemfile 中没有找到

rspec-sidekiq
gem,请检查你的项目代码的任何部分(例如 sidekiq 初始化程序)是否有这样的代码:

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

1
投票

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

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

0
投票

我在使用

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```

0
投票

还要在初始化程序文件和/或环境特定文件中查找 require 'sidekiq/testing/inline',例如 config/environments/development.rb –

这对我有用

© www.soinside.com 2019 - 2024. All rights reserved.