Мне нужно создать и создать несколько экземпляров серверов jsonrpc, прослушивающих в разных портах и порождающих их из одного экземпляра класса. В коде у меня есть метод, который создает сервер jsonrpc и выполняет его метод run_forever:
def attach_server(datos):
server = SimpleJSONRPCServer((datos.url, datos.port))
server.register_introspection_functions()
server.register_instance(datos)
# Run the server's main loop
print 'running server in url:{} ,in port:{}'.format(datos.url,datos.port)
server.serve_forever()
Теперь эта функция вызывается из экземпляра класса, который пытается создать Server1, server2, serverN.
т.е.
Server1 = attach_server(datos1) #datos1.url = 'localhost', datos1.port = 4044
Server2 = attach_server(datos2) #datos2.url = 'localhost', datos2.port = 8088
У меня вопрос ... Как я могу создать этот Сервер1, Сервер2, каждый из которых работает на разных процессах? Мне нужно избегать цикла serve_forever () forever, который позволяет мне запускать только первый сервер.
Я пытался использовать multiprocesses , но я не могу понять, как развить процесс для каждого сервера. Я пробовал что-то вроде этого:
p = Process(name= 'deamon {0}'.format(data.port), target = attach_server(datos))
p.daemon = True
p.start()
Обратите внимание, что целевой параметр в Process подключает сервер jsonrpc, который работает вечно, также избегая запуска второго сервера. Я думаю, мне нужно раскошелиться, но я не могу понять, как / где / какой инструмент использовать правильно.
Любая помощь, приветствуется!
спасибо