2012-07-10 15 views
5

मैं एक साधारण Procfile कि पढ़ता है Procfile में एक से अधिक श्रमिकों शुरू करने:(विकास पर्यावरण बनाम Heroku)

web: bundle exec rails server thin -p $PORT 
worker: bundle exec rake jobs:work 

Heroku पर, यह एन कार्यकर्ता कार्य का शुभारंभ करेंगे, जहां एन जो कुछ भी मैं इसे बढ़ा लिया है हो रहा है ।

मेरे विकास प्रणाली पर,

$ foreman start 

केवल एक कार्यकर्ता कार्य का शुभारंभ करेंगे। मैं तीन कार्यकर्ताओं लॉन्च करना चाहते हैं, तो मैं एक Procfile कि लगता है कि जरूरत है:

web: bundle exec rails server thin -p $PORT 
worker: bundle exec rake jobs:work 
worker: bundle exec rake jobs:work 
worker: bundle exec rake jobs:work 

यह कुछ हद तक एक पंडिताऊ सवाल है, लेकिन अगर मैं अपने Heroku पर्यावरण की तरह व्यवहार करने के लिए अपने विकास के वातावरण चाहते हैं, शुरू करने के लिए सबसे अच्छा तरीका क्या है एन कार्यकर्ता कार्य? क्या (उदा।) Procfile_local बनाने के लिए अनुमोदित तरीका है और इसे foreman -f Procfile_local के माध्यम से उपयोग करें?

उत्तर

14

आह। किसने अनुमान लगाया होगा कि ऑनलाइन man page for foreman है? ;)

foreman start --concurrency="web=0,worker=6" 

क्या चाल अच्छी तरह से है। एक अलग Procfile रखने की जरूरत नहीं है।

+0

बहुत बढ़िया! मैंने इसे अपनी .foreman कॉन्फ़िगरेशन फ़ाइल में रखा है, इसलिए मुझे इसे प्रत्येक कमांड के साथ निर्दिष्ट नहीं करना होगा: 'concurrency: web = 1, worker = 2 \ n पोर्ट: 7500'। टिप डरलेस_फूल के लिए धन्यवाद। –

+0

या छोटा संस्करण: 'फोरमैन स्टार्ट-सी वेब = 1, वर्कर = 6' –

3

नवीनतम फोरमैन ने विकल्प का नाम बदलकर --formation कर दिया है।

इसलिए, यह है:

foreman start --formation="web=1,worker=2" 

Source

संबंधित मुद्दे