【发布时间】:2016-07-24 00:46:18
【问题描述】:
在一个 Python 模块 A 中,我正在做一些事情。在做这些事情的过程中,我正在创建一个 Thrift 连接。问题是在连接开始后,程序卡在网络逻辑中。 (即阻塞)。
在模块 A 中我有:
stuff = "do some stuff"
network.ConnectionManager(host, port, ...)
stuff = "do more stuff" # not getting to this point
在网络中...
ConnectionManager.start_service_handler()
def start_service_handler(self):
handler = ServiceHandler(self)
processor = Service.Processor(handler)
transport = TSocket.TServerSocket(port=self.port)
tfactory = TTransport.TBufferedTransportFactory()
pfactory = TBinaryProtocol.TBinaryProtocolFactory()
# server = TServer.TThreadedServer(processor, transport, tfactory, pfactory)
server = TNonblockingServer(processor, transport, tfactory, pfactory)
logger().info('starting server...')
server.serve()
我尝试了这个,但是模块 A 中的代码在连接代码启动后并没有继续。
我认为 TNonblockingServer 可以解决问题,但不幸的是没有。
【问题讨论】:
标签: python multithreading apache thrift nonblocking