Как использовать рабочий процесс heroku как сервер API? - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть фоновое приложение, которое кэширует данные из потока веб-сокетов, выполняет некоторые вычисления на нем и отправляет данные через API REST и / или (по решению) другой исходящий поток веб-сокетов.

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

Я успешно развернул веб-интерфейс как «web», а бэкэнд - как «worker», но не могу найти параметр, позволяющий сделать работника доступным через URL-адрес приложения Heroku.

Как я могу развернуть приложения на Heroku таким образом, чтобы существовал внутренний URL-адрес, к которому мое приложение могло бы подключаться и подключаться?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Проще говоря, рабочий dyno не может быть доступен через HTTP.Только веб-динос может.Из документации heroku:

Веб: Веб-динос - это динос типа «веб», определенный в вашем Procfile.Только веб-dyno получают HTTP-трафик от маршрутизаторов.

https://devcenter.heroku.com/articles/dynos#dyno-configurations

В вашем случае вам лучше создать отдельный веб-динамо для внешнего интерфейса, другой - дляваш сервер.Или вы можете запустить как под одним и тем же dyno и доменом.Например, приложение «экспресс / узел / реакция».

0 голосов
/ 25 апреля 2018

Если вы используете Heroku Private Spaces , тогда вы можете включить Обнаружение службы DNS Dyno , которое позволит вашему веб-dyno отправлять задания вашему рабочему dyno через его DNS-имя. Однако это невозможно (насколько мне известно) в Common Runtime .

Более того, даже в частных пространствах я не уверен, что ваше внешнее приложение может напрямую обращаться к внутреннему URL-адресу вашего работника.

Вместо этого внешнее приложение получает доступ к веб-динамо через URL-адрес приложения. Веб-динамо может затем ставить в очередь задания для рабочих-динамо, используя различные схемы обмена сообщениями, как описано здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...