Configuração Sidekiq para vários ambientes

Eu olhei para várias fontes e tentei vários cenários, mas não consegui resolver isso, portanto, o problema. Por favor me aponte na direção correta.

Como todo mundo eu tenho 3 env (desenvolvimento, encenação e produção).

Eu tenho o seguinte no meu arquivo sidekiq.yml

# Options here can still be overridden by cmd line args.
#   sidekiq -C config.yml  
---
:verbose: false
:namespace: xyz
:logfile: log/sidekiq.log
:concurrency:  25
:strict: false
:pidfile: tmp/pids/sidekiq.pid
:queues:
  - [stg_xyz_tests_queue, 10]
  - [stg_default_xyz_queue, 2]
  - [stg_xyz_default_queue, 3]
development:
  :verbose: true
  :concurrency:  15
  :queues:
    - [dev_xyz_queue, 10]
    - [dev_default_xyz_queue, 2]
    - [dev_xyz_default_queue, 3]
staging:
  :queues:
    - [stg_xyz_queue, 10]
    - [stg_default_xyz_queue, 2]
    - [stg_xyz_default_queue, 3]
production:
  :queues:
    - [prod_xyz_queue, 10]
    - [prod_default_xyz_queue, 2]
    - [prod_xyz_default_queue, 3]

Com isso eu estava esperando que quando eu começasse sidekiq com o comando

RAILS_ENV=#{rails_env} bundle exec sidekiq -C config/sidekiq.yml

que ele pegaria todos os valores do arquivo de configuração e começaria o sidekiq com as filas e o arquivo de log apropriados em log / sidekiq.log, mas isso não funcionaria. O Sidekiq é iniciado, mas cria apenas o stg_xyz_tests_queue, o stg_default_xyz_queue e o stg_xyz_default_queue, não importando o ambiente que usamos.

A outra abordagem que tentei estava usando o seguinte código no config / environments / development.rb

  #configure Sidekiq for dev environment
  Sidekiq.configure_server do |config|
    config.options[:namespace] = "xyz"
    config.options[:concurrency] = 25
    config.options[:verbose] = true
    config.options[:strict] = false
    config.options[:logfile] = "log/sidekiq.log"
    config.options[:pidfile] = "tmp/pids/sidekiq.pid"

    queues = Array.new
    10.times do
      queues.push "dev_xyz_queue"
    end

    2.times do
      queues.push "dev_default_xyz_queue"
    end

    3.times do
      queues.push "dev_xyz_default_queue"
    end

    config.options[:queues] = queues
    puts "Sidekiq server config options for development => #{config.options.to_yaml}"
  end

Com isso as filas são criadas ok, mas o arquivo de log não é criado ou escrito e eu preciso duplicar esse código para todos os 3 ambientes.

Qual é a melhor maneira de obter o sidekiq funcionando perfeitamente para minha configuração? Obrigado pela sua ajuda antecipadamente !!!

questionAnswers(3)

yourAnswerToTheQuestion