首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

Twisted服务器开发技艺(3)

2012-09-12 
Twisted服务器开发技巧(3)问题详见:Twisted服务器优化专题第三种方法是使用经典的服务器模型的select(epol

Twisted服务器开发技巧(3)

问题详见:Twisted服务器优化专题

第三种方法是使用经典的服务器模型的select(epoll)异步I/O。使用twisted框架中的reactor(epoll/select)+reader,将磁盘I/O封装为reader,交给reactor来管理,磁盘I/O完成后调用回调函数将数据返回发送改请求的客户端。这样既不会因为I/O阻塞请求处理线程也不会如方法二一样因为I/O阻塞读取线程,详见下图:

Twisted服务器开发技艺(3)

reactor(epoll/select)+ reader的方法需要继承abstract.FileDescriptor并且实现其几个方法,而twisted框架中的网络(TCP/UDP)、标准I/O、进程都有类似的实现。使用时传入文件描述符,如下:

def _disconnectSelectable(self, selectable, why, isRead, faildict={    error.ConnectionDone: failure.Failure(error.ConnectionDone()),    error.ConnectionLost: failure.Failure(error.ConnectionLost())}):            ...            selectable.connectionLost(f)            ...


-----摘自posixbase.py


热点排行