主题蜘蛛线程类的设计

      主要包括:manager和woker两个类,manag类是个管理类,用来管理和分配具体的线程类worker. 

1Manager

       类说明:

管理分配线程,控制每个线程的状态,定义相应的事件。

定义队列:未下载队列、已下载队列、当前队列、worker队列

队列操作:初始化加载种子列,保存种子队列

线程操作:获得当前所有的线程,检测线程状态

属性:

processedURL:已经下载的种子队列

currentURL:当前正在处理的URL

unprocessedURL:未处理的Uri队列

workers:worker蜘蛛队列

threads:线程数

方法:

Start():开始执行,分配指定的线程数量

SaveTask():保存任务,将没有执行完的放入数据库

LoadTask():加载任务,从数据库中加载种子网站

CheckThreadStatus():检测线程的状态

StopTask():停止任务的执行

GetThreadStatus():获得当前所有线程状态

2 Worker

       类说明:

具体负责下载的类。从Manager的种子队列中分配一个种子网址,并进行下载,下载到页面之后分析网页中的所有链接,计算相关度,相关度高的入种子队列;最后将网页源文本存放到数据库

属性:

Manager: 当前管理者

Name: 只读当前线程名

Url:当前正在处理的URL

方法:

       Start():启动当前线程

    Run():线程循环调用的方法

Download():下载资源,可以为二进制格式,也可以为文本类型

ProcessPage():处理下载后的页面

ScanURLs():扫描超链接

       ProcessLink():处理扫描到的超链接将其加入队列

       AddUrl2Queue():将ProcessLink过滤后的Url添加到队列

       AllowDownload():判断是否属于下载类型

       Save2DataBase():将网页源文件保存到数据库

       AllowRename():判断某个文件的后缀名是否属于忽略重命名的后缀名
     作者:江南的俊马 http://www.21zhu.com 俺要订房网

posted on 2007-10-17 19:26  江南的俊马  阅读(173)  评论(0)    收藏  举报