2012-01-18 11 views
5

यदि आपके पास हेरोकू पर एक एकल डिनो पर यूनिकॉर्न स्थापित है, तो 3 श्रमिकों के साथ कहें। क्या 2 बाल श्रमिकों को वेब अनुरोधों को संसाधित करना संभव है, और 1 यूनिकॉर्न बच्चा पृष्ठभूमि नौकरियां कर रहा है, जैसे कि रेज्यू कतार, या निर्धारित कार्य?क्या यूनिकॉर्न बाल प्रक्रिया को कतार में रखना संभव है, जबकि बाकी प्रक्रिया हेरोोक सिंगल डिनो पर वेब अनुरोधों को संसाधित करती है?

या यह उचित नहीं है?


अब यह काम कर रहा है!

ठीक है, इसलिए जवाब का उपयोग करके मैं इसे क्यू लेने के लिए प्राप्त करने में कामयाब रहा, लेकिन इससे पहले थोड़ा सा झुकाव हुआ। इसी से मेरा काम बना है।

Procfile

web: bundle exec unicorn_rails -p $PORT -c config/unicorn.rb 

unicorn.rb

worker_processes 2 
preload_app true 
timeout 30 

@resque_pid = nil 

before_fork do |server, worker| 
    @resque_pid ||= spawn("bundle exec rake environment resque:work QUEUE=*") 
end 

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

उत्तर

1

यह निश्चित रूप से संभव है - http://bugsplat.info/2011-11-27-concurrency-on-heroku-cedar.html का रीड ले। मैंने खुद कोशिश नहीं की है लेकिन मैं जल्द ही होगा। अनिवार्य रूप से, आप एक unicorn.rb लग रहा है कि

तरह
worker_processes 3 
timeout 30 

@resque_pid = nil 

before_fork do |server, worker| 
    @resque_pid ||= spawn("bundle exec rake " + \ 
    "resque:work QUEUES=scrape,geocode,distance,mailer") 
end 

मैं 'औचित्य' की पूरी तरह से यकीन नहीं है, क्योंकि यह मतलब है Heroku अनिवार्य रूप से आय से खो जाता है के साथ खत्म हो जाएगा, लेकिन वे किसी भी नहीं लिया है इस व्यवहार को अवरुद्ध करने के लिए रोकता है (न ही मुझे लगता है कि वे करेंगे)।

+0

हाँ, मैं कल रात बग्सप्लैट ट्यूटोरियल के माध्यम से काम कर रहा था, लेकिन इसे कतार लेने के लिए नहीं मिला ... – nverba

+0

उपयुक्त के रूप में, मुझे बस यकीन नहीं था कि प्रत्येक फोर्क प्रक्रिया को प्रत्येक के लिए समान होना चाहिए यूनिकॉर्न मास्टर। मुझे नहीं लगता कि उसकेोकू को यूनिकॉर्न के लिए कोई आपत्ति है, वे इसे अपने दस्तावेज़ में कई बार संदर्भित करते हैं। यह केवल 1 Dyno क्षमता पर चल रहा है। वे अपनी नीति को रोकने के लिए साझा डीबी के साथ ऐप्स के जानबूझकर क्लोनिंग पर ऑब्जेक्ट करने की अधिक संभावना रखते हैं, क्योंकि आप 1 मुफ्त ऐप के लिए बंधे कई डायनोस के साथ समाप्त हो सकते हैं। – nverba

+0

स्पष्ट रूप से एक डिनो 15 धागे तक फैल सकता है - लेकिन आपको स्मृति उपयोग से सावधान रहना होगा। –