2

私は自分のローカルホストに Pyramid Web サービスを作成する環境で作業しています。このサーバーのセットアップから、メインのサーバーへの要求のキューを管理する別のサーバーで別のスレッドを生成できるようにしたいと考えています。この 2 番目のキュー サーバーは、SimpleXMLRPCServer を使用して実装されています。server __ init __ ファイルでやろうとしていることは次のとおりです。

server = threading.Thread(target=queue_server.server_start(
    'localhost', '8000', 'True'))
server.daemon=True
server.start()

スレッドの開始時に呼び出される関数は次のとおりです。

def server_start(hostname, port, debug):
    debug = debug
    server = SimpleXMLRPCServer((hostname, int(port)), allow_none=True)
    server.register_function(kill, 'kill')
    server.register_function(listen_for_tasks, 'update')
    queue_consumer = threading.Thread(target=consumer)
    queue_consumer.daemon = True
    queue_consumer.start()
    print 'Serving'
    while not quit:
        server.handle_request()

問題は、server.handle_request() に到達するとコードの実行が停止することを予想したため、元のサーバー (Pyramid ベースのサーバー) が開始されず、このセカンダリ サーバーを含むべきプロセスも開始されないことです。これを克服する方法はありますか?私は決してマルチスレッドの専門家ではないので、問題はスレッドの生成の処理方法にある可能性が非常に高いです。どんな助けも大歓迎です!

4

0 に答える 0