在 Heroku 上的同一个 dyno 上运行 python 工作进程和 web 进程

问题描述 投票:0回答:0

我想在 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,但没有帮助。

python heroku zeromq procfile
© www.soinside.com 2019 - 2024. All rights reserved.