Мне нужно порождать несколько серверов Python jsonrpclib из одного экземпляра разветвления / многопроцессорности - PullRequest
0 голосов
/ 30 марта 2012

Мне нужно создать и создать несколько экземпляров серверов 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, который работает вечно, также избегая запуска второго сервера. Я думаю, мне нужно раскошелиться, но я не могу понять, как / где / какой инструмент использовать правильно.

Любая помощь, приветствуется! спасибо

1 Ответ

0 голосов
/ 02 апреля 2012

Ну, отвечая на мой собственный вопрос ... Я вызывал функцию, которая создает каждый сервер, вместо передачи его ссылки (name = 'what', target = attach_server, args = (datos,) были бы правильными фактическими параметрами.

HEADACHE с этой глупой ошибкой :) Испанский шоколад плохой

tkz stackoverflow позволит вам ответить на себя после 8 часов вашего глупого поста.

...