Назад | Перейти на главную страницу

Можно ли вручную указать альтернативный Procfile на Heroku?

У меня есть репозиторий, который можно развернуть в двух режимах: один - это интерфейсное веб-приложение, а другой - процесс манипулирования данными, который работает круглосуточно и без остановки.

Приложение работает на Django и подключается к базе данных Postgres.

По архитектурным причинам, которые я не буду вдаваться в подробности, я хотел бы развернуть приложение в интерфейсном режиме внутри как одно приложение Heroku и развернуть то же приложение (то есть такое же репозиторий git) в режиме агента данных, как другое. Приложение Heroku.

Оба приложения будут использовать одну и ту же строку подключения Postgres, и поэтому агент данных будет загружать интерфейсное приложение.

Можно ли поддерживать два отдельных файла Procfile в одном репо? Это приведет к запуску трех соответствующих динамометрических модулей в режиме внешнего интерфейса и запустит другой процесс полностью в другом режиме.

Вы можете использовать мой плагин для dokku (https://github.com/sibeliusseraphini/dokku-custom-procfile-plugin)

вам просто нужно установить переменную env PROCFILE = "web: npm start", используя dokku config: set $ APP (или heroku config: set $ APP PROCFILE = "...")

Вам обязательно нужны два отдельных файла Procfile? Похоже, вы могли бы просто использовать веб-дино для интерфейса и рабочий дино (и) для фоновой обработки данных. Heroku прямо поддерживает это; то типы процессов будут определены в одном Procfile:

web: gunicorn hellodjango.wsgi
worker: <whatever command launches your worker>

Нет абсолютно никаких проблем в том, чтобы, например, отдельные модули приложения из одного репозитория Git, запускаемые как различные типы динамических приложений.