Я пытаюсь создать внешний интерфейс для программы на Python. Я выбрал zerorpc для связи между NodeJS и python, который работает нормально, единственная проблема, с которой я сталкиваюсь, это то, что я не могу правильно многопоточным zerorpc.
Я видел несколько постов, рассказывающих о том, как zerorpc и обычные темы не любят друг друга. Однако мой бэкэнд-сервис уже несколько продвинутый и использует несколько потоков.
Итак, теперь вопрос, возможно ли каким-то образом объединить оба, обычные потоки и zerorpc, или мне нужно переписать мой основной код, чтобы использовать ту же библиотеку потоков, что и zerorpc?
Основная проблема, с которой я столкнулся при работе с обычными потоками, заключается в том, что поток, который запускает сервер, полностью зависает и поэтому не может быть закрыт.
Вот как я сейчас запускаю сервер:
self.communication_thread = Thread(target=communication_server.start_communication_server)
self.communication_thread.start()
def start_communication_server():
global server
addr = 'tcp://127.0.0.1:4242'
server = zerorpc.Server(CommunicationServer())
server.bind(addr)
print('Created a new communicationserver running on {}'.format(addr))
server.run()
Я также пытался убить сервер с помощью следующей функции, которая, однако, приводит к исключению, которое нежелательно
def kill_server():
global server
server.stop()
Заранее спасибо за помощь!