10

मुझे यात्री से यूनिकॉर्न में स्थानांतरित होने के बाद स्टेजिंग में एक अजीब समस्या है।यूनिकॉर्न लटकते हुए कहते हैं कि ताज़ा रत्न

मैंने विकास और स्टेजिंग पर्यावरण दोनों के लिए यूनिकॉर्न कॉन्फ़िगर किया। यह विकास में काम कर रहा है लेकिन स्टेजिंग में नहीं है। विकास में 8080 की बात सुन रही है जहां एक यूनिक्स सॉकेट को सुनकर मंचन किया जा रहा है। क्या इससे कोई अंतर आएगा? विशेष रूप से उत्पादन में env env?

यही होता है जब मैं

  1. मंचन में इसे चलाने यह लगभग 100% सीपीयू ले जाता है, जबकि
  2. शुरू कर कभी कभी यह बैठ जाती है और मैं इसका इस्तेमाल करने में सक्षम हूँ है
  3. * लेकिन के सबसे कई बार यह लटका ** और मुझे इसे मारना पड़ा।

मैं इस मुद्दे click here

संबंध में भी प्रश्न लॉग इन यह मैं unicorn.stderr.log

I, [2011-08-26T09:02:53.324286 #5026] INFO -- : unlinking existing socket=/home/krishnaprasad/project_name/tmp/sockets/unicorn.sock 
I, [2011-08-26T09:02:53.324502 #5026] INFO -- : listening on addr=/home/krishnaprasad/project_name/tmp/sockets/unicorn.sock fd=3 
I, [2011-08-26T09:02:53.324860 #5026] INFO -- : Refreshing Gem list 

में क्या देखते हैं क्यों यह जवाहरात ताज़ा करने का प्रयास करता है है? क्या कॉन्फ़िगरेशन फ़ाइल में इससे बचने का कोई तरीका है?

यह है कि क्या मैं config में है/

# unicorn_rails -c /config/unicorn_staging.rb -E staging -D 

rails_env = 'staging' 

working_directory "/home/krishnaprasad/Projects/project_name" 
worker_processes 1 
preload_app true 
timeout 90 

rails_root = "/home/krishnaprasad/Projects/project_name" 
listen "#{rails_root}/tmp/sockets/unicorn.sock", :backlog => 2048 

pid "#{rails_root}/tmp/pids/unicorn.pid" 
stderr_path "#{rails_root}/log/unicorn.log" 
stdout_path "#{rails_root}/log/unicorn.log" 

GC.copy_on_write_friendly = true if GC.respond_to?(:copy_on_write_friendly=) 

before_fork do |server, worker| 
    ActiveRecord::Base.connection.disconnect! 
    old_pid = "#{Rails.root}/tmp/pids/unicorn.pid.oldbin" 
    if File.exists?(old_pid) && server.pid != old_pid 
    begin 
     Process.kill("QUIT", File.read(old_pid).to_i) 
    rescue Errno::ENOENT, Errno::ESRCH 
     # someone else did our job for us 
    end 
    end 
end 

after_fork do |server, worker| 
    ActiveRecord::Base.establish_connection 
end 

अत्यधिक सराहना की कोई मदद unicorn_staging.rb है। अग्रिम धन्यवाद

+0

क्या आपने कभी यह पता लगाया है? मुझे एक ही समस्या का अनुभव हुआ। – David

+0

मैंने इस लाइन को हटा दिया और इसे कुछ हद तक काम किया लेकिन फिर भी धीमा after_fork do | सर्वर, कार्यकर्ता | ActiveRecord :: Base.establish_connection अंत –

+0

लगता है कि उस रेखा को हटाने की तरह आपके यूनिकर्न उपप्रोसेसेस में साझा डेटाबेस हैंडल के साथ समस्याएं उत्पन्न होंगी। मैं प्रीलोड ऐप के साथ डेमॉन मोड में यूनिकॉर्न चलाने में सक्षम नहीं हुआ। एक बार जब मैंने प्रीलोड ऐप को अक्षम कर दिया, तो उसने समस्याएं पैदा कर दीं। – David

उत्तर

0

सुनिश्चित करें कि आपका कोड वाक्यविन्यास त्रुटियों से मुक्त है!

मेरे लिए एक वाक्यविन्यास त्रुटि (मेरे नियंत्रकों में से एक) को ठीक करने के लिए लूप समाप्त हो गया और यूनिकॉर्न ठीक से शुरू हुआ। मुझे यूनिकॉर्न में कोई त्रुटि संदेश नहीं मिला, हो सकता है कि आप WebRat का उपयोग शुरू करने का प्रयास करना चाहें और देखें कि कोई त्रुटि पॉप हो गई है या नहीं।

0

मेरे लिए, यह डेटाबेस कनेक्शन सही ढंग से कॉन्फ़िगर नहीं किया गया था। ऐसा लगता है कि कभी-कभी यह कंसोल पर इसकी रिपोर्ट करता है, कभी-कभी यह सिर्फ स्पिन करता है।