1

在 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。

我尽力快速起草我的问题。如果还不清楚,请告诉我是否可以详细说明。

提前致谢。帕纳克

4

0 回答 0