2

我正在一个在我的本地主机上创建 Pyramid Web 服务的环境中工作。从这个服务器的设置来看,我希望能够使用不同的服务器生成一个不同的线程,该服务器管理对主服务器的请求队列,并且第二个排队服务器是使用 SimpleXMLRPCServer 实现的。我尝试在服务器 __ 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