Sidekiq-Konfiguration für mehrere Umgebungen
Ich habe mehrere Quellen untersucht und verschiedene Szenarien ausprobiert, konnte das Problem jedoch nicht beheben. Bitte weisen Sie mich in die richtige Richtung.
Wie jeder habe ich 3 env (Entwicklung, Inszenierung und Produktion).
Ich habe die folgenden 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 hatte ich gehofft, wenn ich sidekiq mit dem Befehl starte
RAILS_ENV=#{rails_env} bundle exec sidekiq -C config/sidekiq.yml
Es würde alle Werte aus der Konfigurationsdatei abrufen und sidekiq mit den entsprechenden Warteschlangen und der entsprechenden Protokolldatei unter log / sidekiq.log starten, aber das funktioniert nicht. Sidekiq wird gestartet, erstellt jedoch nur die stg_xyz_tests_queue, stg_default_xyz_queue und stg_xyz_default_queue, unabhängig von der verwendeten Umgebung.
Der andere Ansatz, den ich ausprobiert habe, war die Verwendung des folgenden Codes in der Datei config / surroundings / 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
Damit werden die Warteschlangen erstellt, aber die Protokolldatei wird nicht erstellt oder geschrieben, und ich muss diesen Code für alle 3 Umgebungen duplizieren.
Was ist der beste Weg, um Sidekiq für mein Setup zum Laufen zu bringen? Vielen Dank für Ihre Hilfe im Voraus !!!