使用 Twisted 框架进行网络编程,第 2 部分
2008-11-13 13:14:25 来源:WEB开发网使用 Twisted 来更新静态页面
在我的第一篇 Twisted 文章中所提出的定时回调技术可以用来定期更新上面所讨论的 Weblog.html 文件。也就是说,您可以用非阻塞 twisted.internet.reactor.callLater() 调用来替换 logmaker.py 中的 time.sleep() 调用:
清单 3. tlogmaker.py Weblog 刷新器脚本
from webloglib import log_fields, TOP, ROW, END, COLOR
import webloglib as wll
from urllib import unquote_plus as uqp
import os, twisted.internet
LOG = open('../access-log')
RECS = []
PAGE = 'www/weblog.html'
def update():
global RECS
page = open(PAGE+'.tmp','w')
RECS.extend(LOG.readlines())
RECS = RECS[-35:]
print >> page, TOP
odd = 0
for rec in RECS:
hit = [field.strip('"') for field in log_fields(rec)]
if hit[wll.status]=='200' and hit[wll.referrer]!='-':
resource = hit[wll.request].split()[1]
referrer = uqp(hit[wll.referrer]).replace('&',' &')
print >> page, ROW % (COLOR[odd], referrer, resource)
odd = not odd
print >> page, END
page.close()
os.rename(PAGE+'.tmp',PAGE)
twisted.internet.reactor.callLater(5, update)
update()
twisted.internet.reactor.run()
- ››使用脚本恢复WinXP系统的用户登录密码
- ››使用phpMyadmin创建数据库及独立数据库帐号
- ››使用Zend Framework框架中的Zend_Mail模块发送邮件...
- ››使用cout标准输出如何控制小数点后位数
- ››使用nofollow标签做SEO的技巧
- ››使用 WebSphere Message Broker 的 WebSphere Tra...
- ››使用SQL Server事件探查器做应用程序的性能分析
- ››使用SQL Server事件探查器分析死锁原因
- ››使用纯文本文件打造WCF服务
- ››使用 Dojo 开发定制 Business Space 小部件,第 4...
- ››使用 ADDRESS 与 INDIRECT函数查询信息
- ››使用 COLUMN函数编制单元信息
更多精彩
赞助商链接