Thrift异步响应与错误的服务方法交叉

时间:2012-09-20 07:12:04

标签: python thrift

在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

0 个答案:

没有答案