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