簡體   English   中英

Sidekiq未連接到Rails

[英]Sidekiq not connecting to Rails

我在從Resque轉換到Sidekiq時遇到問題。 盡管perform_async(ids)不會向Redis添加任何內容,但我沒有任何錯誤。 我可以通過Redis.current.append("test", "key")將密鑰直接添加到Redis服務器。我的Sidekiq工作程序也連接到Redis服務器,盡管當我請求Sidekiq::Client.registered_workers時得到一個空數組Sidekiq::Client.registered_workers Web UI僅顯示框架,除了Redis信息外沒有其他信息。 我不知道這是否重要,但是Sidekiq.redis { |conn| conn.info } Sidekiq.redis { |conn| conn.info }返回的信息對於我的本地Redis服務器都是正確的。 雖然Sidekiq.server? 返回nil值。

更新:當我執行perform_async(args)它返回一個字符串。

聽起來您的Sidekiq配置沒有為Sidekiq的客戶端和服務器組件使用相同的redis配置。

客戶端在您的Rails應用服務器中執行,而服務器是一個獨立的獨立進程,在其中執行工作。 如果他們都沒有通過Redis配置使用相同的Redis隊列,則不會處理工作。

這是一個示例config/initializers/sidekiq.rb配置塊,兩個組件使用相同的redis:

redis = { url: (ENV['REDIS_URL'] || 'redis://127.0.0.1'), namespace: 'sidekiq' }

Sidekiq.configure_server do |config|
  config.redis = redis
end

Sidekiq.configure_client do |config|
  config.redis = redis
end

我的猜測是,客戶端和服務器配置之間的名稱空間或配置不同。

我遇到了同樣的問題。

原來,我在Gemfiledevelopment組中配置了rspec-sidekiq ,並且rspec-sidekiq顯然對異步調用進行了測試。

解決方案是這樣修改我的Gemfile

gem 'rspec-sidekiq', group: :test, require: false

最后,我在spec_helper.rb中添加了spec_helper.rb require 'rspec-sidekiq'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM