0

複数の jsonrpc サーバー インスタンスを作成して生成し、異なるポートでリッスンし、1 つのクラス インスタンスからそれらを生成する必要があります。コードには、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 の target パラメータは、永久に実行されている jsonrpc サーバーをアタッチしており、2 番目のサーバーの起動も回避していることに注意してください。フォークする必要があると思いますが、どのツールをどのように/どこで/どのツールを使用するのが正しいのかわかりません。

どんな助けでも大歓迎です!ありがとう

4

1 に答える 1

0

さて、私自身の質問に答えて...参照を渡す代わりに、各サーバーを作成する関数を呼び出していました( name = 'whatever', target = attach_server, args = (datos, ) が正しい実際のパラメーターになります.

このばかげた間違いで頭が痛い :) スペインのチョコレートはまずい

tkz stackoverflow を使用すると、愚かな投稿の 8 時間後に自分で回答できます。

于 2012-04-02T00:39:30.200 に答える