2012-04-22 8 views
8

Właśnie przeniosłem się z Epio do Heroku i po przeczytaniu o ich nowym modelu procesu zastanawiałem się, jak Heroku obsługuje podprocesy. Najczęściej zadawane pytania mówią: you can create subprocesses, ale nie opisują żadnych konsekwencji takiego postępowania.Czy spawnowany podproces jest uważany za nową dyno na Heroku?

Czy każdy podproces jest uważany za nowy element dynamiczny, za który trzeba zapłacić? Jeśli tak, czy używanie Gunicorn nie byłoby drogie, skoro wstępuje w podprocesy? Wreszcie, ponieważ Heroku izoluje swoje procesy, w jaki sposób możesz komunikować się ze swoimi podprocesami?

Odpowiedz

9

Podprocesy są obsługiwane przez pojedyncze urządzenie.

Nie jestem programistą z Pythona, ale używam Unicorn na moich stronach Heroku (Railsach), zwykle z 4 podprocesami, które są zawarte w jednej dynamice. Ilość podprocesów, które spawnujesz, musi być świadoma zużycia pamięci - dostajesz 512 MB na dyno do zabawy.

+0

Zasadniczo Heroku "przetwarza" zawiera jeden lub więcej procesów maszynowych i możesz robić, co trzeba, pod warunkiem, że masz mniej niż 512 MB? – Joe

+1

prawie tyle. Widziałem ludzi, którzy prowadzą jednorożca i zadania w tle (przez Resque) w tym samym procesie dyno. 512Mb jest miękkim limitem, zaczniesz uzyskiwać błędy R14 w swoich plikach dziennika po przejściu przez to, po tym procesie proces zacznie się zamieniać na dysk, a jeśli dostaniesz do 1,5 Gb, dostaniesz błędy R15. –

+1

Facet z Heroku Python tutaj. To jest rzeczywiście poprawne. –