在TThreadedServer模式下使用Thrift服务器时遇到了一个奇怪的问题。我的测试客户端对服务器进行并行调用(100次调用)。在我的节俭服务中说两个方法
是load_account()
和getRequestQueueCoun()
。这些方法与send_load_account and recv_load_account()
进行异步调用。 send_getRequestQueueCoun()
和recv_getRequestQueueCoun()
。
我遇到的问题是send_getRequestQueueCoun()
中正在捕获recv_load_account()
来电的回复。
我在以下行找到了回复
def recv_load_account(self, ):
(fname, mtype, rseqid) = self._iprot.readMessageBegin() # here fname is the other method.
服务器初始化代码 -
handler = SyncServiceHandler(settings.SERVER_NAME,settings.SERVER_LISTEN_IP,settings.SERVER_LISTEN_PORT,isDispatcher)
transport = TSocket.TServerSocket(settings.SERVER_LISTEN_IP, settings.SERVER_LISTEN_PORT)
processor = SyncService.Processor(handler)
tfactory = TTransport.TBufferedTransportFactory()
pfactory = TBinaryProtocol.TBinaryProtocolFactory()
server = TServer.TThreadedServer(processor, transport, tfactory, pfactory)
我在不同端口的localhost上运行两个thrift实例。
我正在使用 Thrift with Python 2.7。
我尽力快速起草我的问题。如果还不清楚,请告诉我是否可以详细说明。
先谢谢。 Panakj