Sidekiq没有从Rails app

时间:2017-01-05 18:12:06

标签: ruby-on-rails sidekiq

我们正在推出一款带有Sidekiq和Rails 5的新应用程序。我们正在利用Redis来存储工作,但出于某种原因,无论是在本地还是在我们的开发区,这些工作似乎都没有传递给Redis。

当代码自行执行以及通过IRB执行时,通知似乎已正确发送。

[10] pry(main)> Notifications::WelcomeWorker.perform_async(1)
=> "1a1447c488f173fb09b212f7"

看看Redis,我们有失败和处理的密钥(都说0)但没有任何待处理的东西让我相信它甚至没有因为某种原因而打击Redis。

我们的Redis配置在config / sidekiq.yml中设置,它只设置并发和PID位置。

我们在initializers / sidekiq.rb

中也有一个初始化文件
Sidekiq.configure_server do |config|
  config.redis = { url: ENV["SIDEKIQ_REDIS"] , namespace: 'abcbh', network_timeout: 5  }
end
Sidekiq.configure_client do |config|
  config.redis = { url: ENV["SIDEKIQ_REDIS"] , namespace: 'abcbh', network_timeout: 5  }
end

SIDEKIQ_REDIS转换为本地redis:// localhost和dev上的相关URL。

所有似乎都可以正常工作,但这些工作似乎没有出现在Redis中。

在我的睡眠剥夺中,我有什么遗漏的东西吗?

工作人员本身在app / workers / notifications / welcome_worker.rb

中设置

在app / workers / notifications / welcome_worker.rb中,我们有以下代码,但它永远不会被执行。

require 'sendgrid-ruby'
include SendGrid
class Notifications::WelcomeWorker
  include Sidekiq::Worker

  sidekiq_retries_exhausted do |msg, e|
    Sidekiq.logger.warn "Failed #{msg['class']} with #{msg['args']}: #{msg['error_message']}"
  end

  def perform(email_id)
    Sidekiq.logger.info "Beginning Welcome Email For #{email_id}"
    ...
  end
end

1 个答案:

答案 0 :(得分:2)

在添加Google-fu后,我发现问题已经报告

Sidekiq worker not getting triggered - 如果你来这里是为了同样的问题,请提出这个问题并回答。他们应该得到更多!

TL:DR - rspec-sidekiq gem应仅在测试中。显然这有点发展。

我现在将我的头靠在墙上,想知道为什么我的谷歌会让我连续两天失败。