WEB开发网
开发学院软件开发Python 使用 Twisted 框架进行网络编程,第 2 部分 阅读

使用 Twisted 框架进行网络编程,第 2 部分

 2008-11-13 13:14:25 来源:WEB开发网   
核心提示: logmaker.py 和 tlogmaker.py 的差别不大 - 两者都可以在后台启动并且都可以让它们一直运行以更新页面 referesher.html ,更有趣的是可以将 tlogmaker.py 目录构建到 Twisted 服务器中,使用 Twisted 框架进行网络编程,第 2

logmaker.py 和 tlogmaker.py 的差别不大 - 两者都可以在后台启动并且都可以让它们一直运行以更新页面 referesher.html 。更有趣的是可以将 tlogmaker.py 目录构建到 Twisted 服务器中,而不是仅让它在后台进程中运行。这非常简单,我们只需要在该脚本结尾处再添加两行:

from twisted.web import static

resource = static.File("~/twisted/www")

还可以除去对 twisted.internet.reactor.run() 的调用。通过这些更改,使用下面两行脚本创建服务器:

mktap --resource-script=tlogmaker.py --port 8080
    
--path ~/twisted/www

然后像前面那样使用 twistd 来运行已创建的 web.tap 服务器。现在 Web 服务器自己可以使用其标准核心分派循环每五秒钟刷新一下页面 Weblog.html。

使 Weblog 变成动态页面

处理 Web 日志的另一种方法是每次收到请求时使用动态页面来生成最新访问量。但是,每次接收到这样的一个请求就读取整个 access-log 文件并不是个好主意 - 忙碌的网站在日志文件中可能有几千条记录,反复读取这些记录非常耗时间。更好的办法是让 Twisted 服务器自己拥有一个针对日志文件的文件句柄,只在需要时才读取 新记录。

在某种程度上,让服务器维护文件句柄正是 tlogmaker.py 所做的工作,但是它将最新的记录存储在文件而不是存储在内存中。但是,这种方法强迫我们围绕该持久性功能编写整个服务器。让各个动态页面分别向服务器发出自己的持久性请求会更加好。例如,通过这种方法您可以添加新的有状态动态页面,而不必停止或改变长期运行的(和通用的)服务器。页面分配的持久性的关键是 Twisted 的 注册表。例如,下面是一个处理 Weblog 的动态页面:

上一页  1 2 3 4 5 6 7  下一页

Tags:使用 Twisted 框架

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接