2013-03-07 12 views
16

मैंने कई स्रोतों को देखा है और विभिन्न परिदृश्यों का प्रयास किया है लेकिन इस मुद्दे को हल नहीं कर सका। कृपया मुझे सही दिशा इंगित करें।एकाधिक वातावरण के लिए साइडकीक कॉन्फ़िगरेशन

सभी की तरह मेरे पास 3 एनवी (विकास, स्टेजिंग और उत्पादन) है।

मैं अपने 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] 

इसके साथ ही मुझे उम्मीद थी कि जब मैं आदेश

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

साथ sidekiq शुरू है कि यह पिक सब से मूल्यों होगा कॉन्फ़िगरेशन फ़ाइल और लॉग/sidekiq.log पर उपयुक्त कतारों और लॉग फ़ाइल के साथ साइडकीक शुरू करें लेकिन यह काम नहीं करता है। साइडकीक शुरू होता है लेकिन यह केवल stg_xyz_tests_queue, stg_default_xyz_queue और stg_xyz_default_queue बनाता है इससे कोई फर्क नहीं पड़ता कि हम किस पर्यावरण का उपयोग करते हैं।

अन्य दृष्टिकोण मैं config/वातावरण/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 

के साथ इस कतारों ठीक बनाई गई हैं, लेकिन लॉगफ़ाइल बनाया है या नहीं लिखा है और मैं नकल करने की जरूरत है की कोशिश की सभी 3 वातावरण के लिए यह कोड।

साइडकीक मेरे सेटअप के लिए निर्बाध रूप से काम करने का सबसे अच्छा तरीका क्या है अग्रिम में आपकी सहायता के लिए धन्यवाद !!!

+0

[कड़ी] (https://github.com/mperham/sidekiq/issues/758) साइडकीक साइट में एक ही प्रश्न है जो एक समस्या – user1687078

उत्तर

8

पर्यावरण को पारित करने के लिए उपयोग करें।

bundle exec sidekiq -e production -C config/sidekiq.yml 

उत्तर के लिए mperham पर धन्यवाद।

18

-e विकल्प का उपयोग

bundle exec sidekiq -e beta -C config/sidekiq.yml 

सभी वातावरण (विकास, मचान और उत्पादन) एक ही सर्वर पर कर रहे हैं तो नाम स्थान का उपयोग करें। अपने initializers/sidekiq.rb फ़ाइल में

Sidekiq.configure_server do |config| 
    config.redis = { url: 'redis://localhost:6379/0', namespace: "sidekiq_app_name_#{Rails.env}" } 
end 

Sidekiq.configure_client do |config| 
    config.redis = { url: 'redis://localhost:6379/0', namespace: "sidekiq_app_name_#{Rails.env}" } 
end  
+1

के रूप में सूचीबद्ध है और क्या होगा यदि वे सभी एक ही सर्वर पर नहीं हैं? –

+0

फिर यहां नामस्थान सेट करना आवश्यक नहीं है। –

+0

मेरा मतलब है कि अगर आप विभिन्न वातावरणों के लिए अलग-अलग सर्वरों का उपयोग कर रहे थे तो क्या आप startizers/sidekiq.rb में sidekiq कॉन्फ़िगरेशन को परिभाषित करेंगे? –

2

उपयोग लॉग इन करें स्थापित करने के लिए, और पर्यावरण का समर्थन:

bundle exec sidekiq -d -L log/sidekiq.log -e production -C config/sidekiq.yml 
संबंधित मुद्दे