2012-07-10 28 views
5

Tôi có một Procfile đơn giản mà đọc:bắt đầu nhiều người lao động trong Procfile (môi trường phát triển vs Heroku)

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

On Heroku, điều này sẽ khởi động nhiệm vụ lao động N, trong đó N là bất cứ điều gì tôi đã thu nhỏ nó được .

Trên hệ thống phát triển của tôi,

$ foreman start 

sẽ chỉ khởi động một nhiệm vụ lao động. Nếu tôi muốn để khởi động ba công nhân, tôi cần một Procfile trông giống như:

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 

Đây là một câu hỏi hơi gàn dở, nhưng nếu tôi muốn môi trường phát triển của tôi cư xử giống như môi trường Heroku của tôi, cách tốt nhất để khởi động là những gì N nhiệm vụ công nhân? Cách được chấp thuận để tạo (ví dụ: Procfile_local và sử dụng nó qua foreman -f Procfile_local?

Trả lời

14

Ah. Ai có thể đoán rằng có một số trực tuyến man page for foreman? ;)

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

Thủ thuật có độc đáo không. Không cần phải có một Procfile riêng biệt.

+0

Tuyệt vời! Tôi đặt điều này trong tập tin cấu hình .foreman của tôi vì vậy tôi sẽ không phải xác định điều này với mỗi lệnh: 'concurrency: web = 1, worker = 2 \ n port: 7500'. Cảm ơn bạn đã gửi mẹo. –

+0

hoặc phiên bản ngắn hơn: 'foreman start -c web = 1, worker = 6' –

3

Người quản lý mới nhất đã đổi tên tùy chọn thành --formation.

Vì vậy, đó là:

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

Source

Các vấn đề liên quan