我正在一个在我的localhost上创建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()时,我预期代码的执行会停止,因此原始服务器(基于金字塔的服务器)不会启动,并且应该包含的进程也不会这个辅助服务器。有办法克服这个问题吗?我绝不是多线程专家,所以问题很可能在于我如何处理线程的生成,非常感谢任何帮助!