Ich habe mehrere Quellen angeschaut und verschiedene Szenarien ausprobiert, konnte dies aber nicht lösen, daher das Problem. Bitte zeigen Sie mir in die richtige Richtung.Sidekiq Konfiguration für mehrere Umgebungen
Wie jeder habe ich 3 env (Entwicklung, Inszenierung und Produktion).
Ich habe folgendes in meiner sidekiq.yml Datei
# 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]
Damit ich hatte gehofft, dass, wenn ich starten sidekiq mit dem Befehl
RAILS_ENV=#{rails_env} bundle exec sidekiq -C config/sidekiq.yml
, dass es würde Pickup alle Werte aus der Konfigurationsdatei und starten sidekiq mit den entsprechenden Warteschlangen und Protokolldatei bei log/sidekiq.log, aber das funktioniert nicht. Sidekiq startet, aber es erstellt nur die stg_xyz_tests_queue, stg_default_xyz_queue und stg_xyz_default_queue, egal welche Umgebung wir verwenden.
Der andere Ansatz, den ich versuchte, wurde in der config/Umgebungen/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
Mit diesen Warteschlangen erstellt ok den folgenden Code verwenden, aber die Log-Datei wird nicht erstellt oder geschrieben, und ich brauche zu duplizieren Dieser Code für alle 3 Umgebungen.
Was ist der beste Weg, Sidekiq nahtlos für meine Einrichtung arbeiten Vielen Dank für Ihre Hilfe im Voraus!
[link] (https://github.com/mperham/sidekiq/issues/758) Sidekiq Website hat die gleiche Frage als Problem aufgeführt – user1687078