TThreadedServer モードで Thrift サーバーを使用しているときに、奇妙な問題に遭遇しました。私のテスト クライアントは、サーバーに対して並列呼び出し (100 呼び出し) を行います。私のリサイクル サービスの 2 つの方法が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 で 2 つの thrift インスタンスを実行しています。
Python 2.7 で Thrift を使用しています。
私は自分の問題をすばやく下書きするために最善を尽くしました。それでも不明な場合は、詳しく説明できるかどうかをお知らせください。
前もって感謝します。パナクジ