Python中使用Threads和Queue给tornado添加客户端
1 Python中使用Threads和Queue给tornado添加客户端
在使用tornado实现web服务器时,遇到需要使用客户端反向发送POST请求。在Handler中直接使用tornado客户端发送请求,服务端性能会受到影响,如果使用异步客户端(AsyncHTTPClient)会有所提高,异步客户端是短连接的,同样不符合需求。于是想到了使用多线程,比较好的解决方式是在Handler中把请求数据放到共享数据段,客户端的发送线程读取共享数据并发送。查了multiprocessing和threading,发现直接使用threading.Thread和Queue最简单。
from threading import Thread from Queue import Queue if __name__ == "__main__": q = Queue() def client_handler(q, i): client = httpclient.HTTPClient() print("client%d handler started "%(i)) while True: