我正在尝试为 python 程序构建前端服务。我选择 zerorpc 在 NodeJS 和 python 之间进行通信,效果很好,唯一的问题是我不能正确地多线程 zerorpc。
我看过几篇关于 zerorpc 和普通线程如何相互不喜欢的帖子。但是,我的后端服务已经有些先进并使用了多个线程。
所以现在的问题是,是否有可能以某种方式将普通线程和 zerorpc 两者结合起来,还是我必须重写我的主代码以使用与 zerorpc 相同的线程库?
我使用普通线程遇到的主要问题是启动服务器的线程完全冻结,因此无法再关闭。这是我目前启动服务器的方式:
self.communication_thread = Thread(target=communication_server.start_communication_server)
self.communication_thread.start()
def start_communication_server():
global server
addr = 'tcp://127.0.0.1:4242'
server = zerorpc.Server(CommunicationServer())
server.bind(addr)
print('Created a new communicationserver running on {}'.format(addr))
server.run()
我还尝试使用以下功能杀死服务器,但这会导致异常,这是不可取的
def kill_server():
global server
server.stop()
预先感谢您帮助我!