Мне нужно создать несколько серверов python jsonrpclib из одного экземпляра, разветвляющего/многопроцессорного

Мне нужно создать и порождать несколько экземпляров серверов 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

У меня вопрос... Как я могу создать этот Server1, Server2, каждый из которых работает в разных процессах? Мне нужно избегать вечного цикла serve_forever(), который позволяет мне запускать только первый сервер.

Я пробовал использовать мультипроцессы, но не могу понять, как разветвить процесс для каждого сервера. Я пробовал что-то вроде этого:

p = Process(name= 'deamon {0}'.format(data.port), target = attach_server(datos))
p.daemon = True
p.start()

Обратите внимание, что целевой параметр в Process подключает сервер jsonrpc, который работает вечно, а также избегает запуска второго сервера. Думаю, мне нужно раскошелиться, но я не могу понять, как/где/какой инструмент использовать правильно.

Любая помощь приветствуется! Благодарность


person Luchux    schedule 30.03.2012    source источник


Ответы (1)


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

ГОЛОВНАЯ БОЛЬ от этой глупой ошибки :) испанский шоколад плохой

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

person Luchux    schedule 02.04.2012