Ho esaminato più fonti e provato vari scenari ma non ho potuto risolvere questo problema. Per favore, indicami la giusta direzione.Configurazione sidekiq per più ambienti
Come tutti io ho 3 env (sviluppo, messa in scena e produzione).
Ho il seguente nel mio file 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]
Con questo speravo che quando inizio sidekiq con il comando
RAILS_ENV=#{rails_env} bundle exec sidekiq -C config/sidekiq.yml
che sarebbe pick-up tutti i valori dalla file di configurazione e avvia sidekiq con le code e il file di log appropriati su log/sidekiq.log ma non funziona. Sidekiq si avvia, ma crea solo stg_xyz_tests_queue, stg_default_xyz_queue e stg_xyz_default_queue indipendentemente dall'ambiente che usiamo.
L'altro approccio che ho provato era utilizzando il seguente codice nella cartella config/ambienti/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
Con queste code sono creati male, ma il file di log non viene creato o scritta e ho bisogno di duplicare questo codice per tutti e 3 gli ambienti.
Qual è il modo migliore per far funzionare sidekiq senza problemi per il mio setup Grazie per il vostro aiuto in anticipo !!!
[link] (https://github.com/mperham/sidekiq/issues/758) Il sito Sidekiq ha la stessa domanda elencata come un problema – user1687078