我想在 Heroku 的同一个 dyno 上运行网络和工作进程。原因是我的程序使用客户端-服务器架构,所以 server.py 和 app.py 在同一个端口上通信。
app.py
context = zmq.Context()
socket = context.socket(zmq.DEALER)
_rid = "{}".format(str(uuid.uuid4()))
socket.setsockopt_string(zmq.IDENTITY, _rid)
socket.connect('tcp://localhost:7777')
classification_server.py
# Create ZeroMQ socket of type ROUTER: Load Balancer distributes incoming messages
frontend = context.socket(zmq.ROUTER)
frontend.bind('tcp://*:7777')
我的 Procfile 看起来像这样
web: gunicorn flask_client.app:app
worker: python model_server/classification_server.py
根据我的 Procfile,Heroku 在 2 个不同的测功机上启动网络和工作进程,因此它们无法相互通信。在我的本地机器上,这工作得很好,因为这两个进程可以访问本地主机上的同一个端口。我该如何解决这个问题?
我尝试以不同的方式设置 Procfile,但没有帮助。