Mam prosty Procfile, który brzmi:
web: bundle exec rails server thin -p $PORT
worker: bundle exec rake jobs:work
W Heroku uruchomi to N zadań roboczych, gdzie N jest tym, czym go skalowałem.
W moim systemie rozwoju,
$ foreman start
uruchomi tylko jedno zadanie robocze. Jeśli chcę uruchomić trzech pracowników, potrzebuję pliku Procfile, który wygląda tak:
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
To dość pedantyczne pytanie, ale jeśli jachcę, aby moje środowisko programistyczne zachowywało się jak moje środowisko Heroku, co jest najlepszym sposobem na uruchomienie N zadań roboczych? Czy zatwierdzony sposób tworzenia (np.) Procfile_local i używania go przez foreman -f Procfile_local
?
Odpowiedzi:
14 dla odpowiedzi № 1Ah. Kto by się domyślił, że jest online strona man dla brygadzisty? ;)
foreman start --concurrency="web=0,worker=6"
Dobrze to robi. Nie ma potrzeby posiadania oddzielnego pliku Procfile.
3 dla odpowiedzi № 2
Najnowszy Foreman zmienił nazwę opcji na --formation
.
Więc jest to:
foreman start --formation="web=1,worker=2"