gpt4 book ai didi

ruby-on-rails - 如何在不使用 docker-compose for rails 的情况下配置 sidekiq 和 redis?

转载 作者:可可西里 更新时间:2023-11-01 11:23:25 24 4
gpt4 key购买 nike

我想在我的 Rails 应用程序中实现 sidekiq。我成功创建图像和容器。但是当我尝试在应用程序中执行作业容器时找不到 redis。我如何将我的应用程序容器(具有自己的 IP:端口)与 Redis 容器(具有自己的 IP:端口)连接。

我认为问题隐藏在 sidekiq.rb 中。但我不确定

sidekiq_config = { url: "<container url>" }

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

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

我想运行 2 个容器:my-appredis。在 my-app 容器中,sidekiq 应该知道如何 ping redis 容器。

附言我的 ̶r̶e̶l̶i̶g̶i̶o̶n̶ 导师不允许我使用 docker-compose 所以这很棘手

最佳答案

考虑你的陈述:

...your app (which has its own IP:Port) with Redis container (which has it's own IP:Port).

您可能想检查一下您的 "<container url>"好像。为了更深入地了解,这是我建议的样子:

配置/初始化程序/sidekiq.rb

Sidekiq.configure_server do |config|
config.redis = { url: 'redis://redis.example.com:7372/0' }
end

Sidekiq.configure_client do |config|
config.redis = { url: 'redis://redis.example.com:7372/0' }
end

然后就在你的application.rb将队列适配器定义为sidekiq

配置/应用程序.rb

config.active_job.queue_adapter = :sidekiq

此外,请注意sidekiq 在config/sidekiq.yml 中查找配置文件。如果文件存在,它将以定义的配置开头。因此,请检查您是否设置了配置。这可能是您遇到的主要问题,因为您没有就您所做的事情提供足够的线索。

配置/sidekiq.yml

---
:verbose: false
:concurrency: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
:timeout: 30
:queues:
- [low_priority, 1]
- [high_priority, 2] # high priority

要更深入地了解如何将 Redis 与 Sidekiq 一起使用,请查看 https://github.com/mperham/sidekiq/wiki/Using-Redis

关于ruby-on-rails - 如何在不使用 docker-compose for rails 的情况下配置 sidekiq 和 redis?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56708104/

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