在 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 中运行两个节俭实例。
我在Python 2.7 中使用 Thrift。
我尽力快速起草我的问题。如果还不清楚,请告诉我是否可以详细说明。
提前致谢。帕纳克