0

我需要创建并生成几个 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 的类实例调用此函数。
IE

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 服务器,同时避免启动第二个服务器。我想我需要分叉,但我不知道如何/在哪里/哪个工具是正确的。

欢迎任何帮助!谢谢

4

1 回答 1

0

好吧,回答我自己的问题......我正在调用创建每个服务器的函数,而不是传递它的引用( name = 'whatever', target = attach_server, args = (datos, ) 将是正确的实际参数。

为这个愚蠢的错误而头疼:) 西班牙巧克力很糟糕

tkz stackoverflow 让您在 8 小时的愚蠢帖子后回答自己。

于 2012-04-02T00:39:30.200 回答