如何使用heroku worker进程作为API服务器?

时间:2018-04-25 06:54:35

标签: heroku

我有一个后台应用程序,它缓存来自websocket流的数据,对其进行一些计算,并通过REST API发送数据和/或(待决定)另一个传出的websocket流。

我有另一个前端应用程序,它使用API​​和/或websocket流并在浏览器中显示数据。

我已成功将前端部署为" web"而后端是" worker",但我似乎找不到通过Heroku应用URL访问工作人员的设置。

如何在Heroku上部署应用程序,以便我的前端应用程序存在后端URL以访问和连接?

2 个答案:

答案 0 :(得分:1)

如果您使用Heroku Private Spaces,则可以启用Dyno DNS Service Discovery,以允许您的网络动态通过其DNS名称将作业发送到您的工作人员dyno。 但是(据我所知),在Common Runtime

中,这是不可能的

此外,即使在私人空间,我也不确定您的前端应用是否可以直接访问您的工作人员的后端网址。

相反,前端应用程序通过应用程序URL访问Web dyno。 然后,web dyno可以使用各种消息传递方案为工作人员dynos排队工作,如here所述。

答案 1 :(得分:0)

简而言之,无法通过HTTP访问辅助动态发电机。只有网络测功机可以。从heroku的文档中:

  

Web:Web dynos是已定义的“ web”进程类型的dynos   在您的Procfile中。        只有Web dynos才能从路由器接收HTTP流量。

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

在您的情况下,最好为前端创建一个单独的Web dyno,为服务器创建另一个。或者,您可以在同一个dyno和域下运行它们。例如,快速/节点/反应应用程序。