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

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

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

Ответ 1

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

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

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