как бороться со сломанной трубой с питоном и хозяйством - PullRequest
0 голосов
/ 18 мая 2018

Я новичок в области экономности и сокетов. Я строю сервер экономно с помощью python.код, подобный следующему:

class HelloServiceHandler:
    def buildIndex(self, fileData):
        tem = index.SaveIndex(fileData.name)
        tem.build_index(3)
        return True

handler = HelloServiceHandler()
processor = ReIndex.Processor(handler)
transport = TSocket.TServerSocket("0.0.0.0", 9090)
tfactory = TTransport.TFramedTransportFactory()
pfactory = TCompactProtocol.TCompactProtocolFactory()

server = TServer.TThreadPoolServer(processor, transport, tfactory, pfactory)

print ("Starting thrift server in python...")
server.serve()
print ("done!")

при запуске клиента сервер часто получает ошибку BrokenPipeError: [Errno 32] Broken pipe ,, похоже,проблема потока.

так как изменить код?

1 Ответ

0 голосов
/ 18 мая 2018

Обычное решение - закрыть и снова открыть транспорт в таких случаях.Это в значительной степени верно для всех языков Thrift, с которыми я имел дело до сих пор, так что это должно быть верно и для Python.

...