Можно ли запускать несколько processeses на диностенде в Heroku?

Я знаю об ограничениях памяти платформы Heroku, и я знаю, что гораздо более масштабируемо разделить приложение на веб-и рабочие dynos. Однако я все равно хотел бы запускать асинхронные задачи вместе с веб-процессом для целей тестирования. Dynos дороги, и я хотел бы прототип на свободном экземпляре, который Heroku предоставляет.

есть ли проблемы с созданием нового задания как процесса или подпроцесса в том же dyno, что и веб-процесс?

1 ответов


в новом Кедровом стеке нет проблем с нерестом нескольких процессов. Каждый dyno является виртуальной машиной и не имеет никаких ограничений, кроме использования памяти и процессора (около 512 МБ памяти, я думаю, и 1 CPU core). Следуя новым инструкциям по установке для некоторых стеков, таких как Python, вы получите конфигурацию с несколькими (веб-сервером) процессами из коробки.

программное обеспечение, установленное на веб-dynos может варьироваться в зависимости от того, что buildpack вы использование; если ваши подпроцессы нуждаются в специальном программном обеспечении, вам может потребоваться либо связать его с вашим приложением, либо (лучше) свернуть свой собственный buildpack.

на этом этапе я обычно напоминаю вам, что запуск асинхронных задач на рабочих dynos вместо веб-dynos, с надлежащей системой очереди задач, настоятельно рекомендуется, но похоже, что вы это уже знаете. Имейте в виду, что учетные записи только с одним веб-dyno (обычно это означает, что "бесплатные" учетные записи) будут иметь этот dyno через час или около того, не получая никаких веб-запросов, и что любые фоновые процессы, запущенные на dyno в это время, обязательно будут убиты. Учетные записи с несколькими веб-dynos не подлежат этому ограничению.