gpt4 book ai didi

ruby-on-rails - Sidekiq 没有从 Rails 应用程序中获取工作

转载 作者:行者123 更新时间:2023-12-05 03:09:53 25 4
gpt4 key购买 nike

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

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

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

查看 Redis,我们有 failed 和 processed 的键(都说 0),但没有 pending 的键,这让我相信由于某种原因它甚至没有命中 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,在开发上转化为相关的 URL。

一切似乎工作正常,但作业似乎没有出现在 Redis 中。

我的 sleep 不足是否缺少什么?

worker 本身在 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

最佳答案

在额外的 Google-fu 之后,我发现问题已经被报告了

Sidekiq worker not getting triggered - 如果你来这里是为了同样的问题,请投票支持这个问题和答案。他们应得的更多!

TL:DR - rspec-sidekiq gem 应该只在测试中。显然这与开发有关。

我现在要用头撞墙,想知道为什么我的 google-fu 连续两天都失败了。

关于ruby-on-rails - Sidekiq 没有从 Rails 应用程序中获取工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41491887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com