私は自分のローカルホストに 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 ベースのサーバー) が開始されず、このセカンダリ サーバーを含むべきプロセスも開始されないことです。これを克服する方法はありますか?私は決してマルチスレッドの専門家ではないので、問題はスレッドの生成の処理方法にある可能性が非常に高いです。どんな助けも大歓迎です!