Итак, я играю с ZeroRPC и Tornado для проекта домашних животных, и у меня возникли проблемы с использованием ZeroRPC в сочетании с многопроцессорной библиотекой python
. В частности, я создание и запуск новых серверов ZeroRPC программно, но, как правило, при запуске, сервер zerorpc
блокирует, так что моя мысль была бросить его в другой процесс, как так:Странные проблемы с многопроцессорной обработкой с zeroRPC
server = zerorpc.Server(FuncWrapper())
server.bind(server_address)
process = multiprocessing.Process(target=server.run)
process.start()
Однако, когда я делаю это , вызывающий сервер RPC
просто зависает, что является типичным поведением, когда конечная точка не была правильно создана. Однако, если я просто позволю серверу запустить блок и вызовет его так:
serhouldver = zerorpc.Server(FuncWrapper())
server.bind(server_address)
server.run()
Все работает нормально. Мое понимание заключалось в том, что эти две реализации должны быть эквивалентными, но почему-то это не так.
Любые идеи?