以编程方式访问 Sidekiq Config/那里有哪些配置选项,它们在哪里设置?

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

在 Rails 应用程序中,Sidekiq 7 具有

config/sidekiq.yml
以及创建初始化程序以设置配置的能力。

我试图弄清楚 a) 有哪些配置选项可用,b) 可以在哪里设置它们,以及 c) 如何检查 sidekiq 是否已配置

我不需要 (c) 成为生产代码或逻辑的一部分,更像是我偶尔可以在 Rails 控制台中使用的东西来验证我所做的配置更改已被接受,因此 (c) 可以通过某种方式满足“在启动时转储配置”功能(我找不到它是否存在)。

我试过的是:

> bin/rails c
irb> require "sidekiq/cli"
irb> Sidekiq::CLI.instance.parse
irb> Sidekiq::CLI.instance.config

这表明似乎使用了

config/sidekiq.yml
。凉爽的。但是,问题是当我尝试在初始化程序中复制配置时

#:concurrency: <%= ENV.fetch("SIDEKIQ_CONCURRENCY") { 15 } %>
:timeout: <%= ENV.fetch("SIDEKIQ_TIMEOUT_SECONDS") { 25 } %>
:queues:
  - default

(注意,

concurrency
在这里被注释掉,希望“强制”它使用初始化程序:

Sidekiq.configure_server do |config|
  config.concurrency = 88
  config.redis = {
    url: ENV.fetch("SIDEKIQ_REDIS_URL")
  }
end

# configure_client omitted

这个初始化程序不会产生错误,但是当我做上面的

CLI.instance
事情时,这个值没有被使用。所以要么初始化程序不允许配置它(如果是这样,那can在那里配置什么?)或者我转储配置的方式不准确(如果是这样,我是怎么做的do ?)。

我似乎找不到这方面的好文档,而且配置的内部结构似乎在版本 7 中发生了变化。

ruby-on-rails sidekiq
1个回答
0
投票

我正在维护

sidekiq-cron
,我们需要在某些地方访问其中一些 Sidekiq 设置。

从 Sidekiq v7 开始,您可以通过以下方式访问所有配置选项(甚至是 Redis 设置):

Sidekiq.default_configuration

您可以在此文件中检查如何在其他 Sidekiq 版本中访问它们:https://github.com/sidekiq-cron/sidekiq-cron/blob/master/lib/sidekiq/options.rb.

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