华子的代码空间

逆水行舟,不进则退。 关注系统编程、网络编程、并发、分布式。

2013年3月8日

tornado使用长连接并运行在nginx反向代理后面

摘要: 使用nginx作为tornado的反向代理是非常不错的,因为python的GIL不能充分利用多核资源。可以在一台机器上运行多个python进程,监听多个端口,前面用nginx做代理。下面给出一个nginx的配置例子,例子中tornado使用长连接,运行聊天服务器。 1 upstream chat_cluster{ 2 server 127.0.0.1:10000; 3 server 127.0.0.1:10001; 4 ip_hash; 5 keepalive 1024; 6 } 7 8 server 9 {10 listen 80;11 se... 阅读全文

posted @ 2013-03-08 20:24 华子的代码空间 阅读(2187) 评论(1) 推荐(0) 编辑

tornado长连接断开的处理机制

摘要: 使用tornado的异步http调用时候,在继续RequestHandler的子类中,可以重载on_connection_close方法。此方法在对端连接关闭,或者在socket上读写错误的时候被调用,可以让服务器做一些清理。调用过程大概这样:首先说明,ioloop没有保证读写出错的时候做什么,以及怎么做。这些都是由iostream来操作的,因为它就是对ioloop的封装,增加了错误处理、各种情况下的回调、读写缓存等等。1. on_connection_close虽然是在web.py中定义的,但是其实它是由iostream来调用,tcp_server/http_server都是继承了此方法。2 阅读全文

posted @ 2013-03-08 20:18 华子的代码空间 阅读(3589) 评论(0) 推荐(0) 编辑

导航