📄 processserviceimpl.java
字号:
package com.booksearch.service.process;
/************************************************************
FileName: ProcessServiceImpl.java
Author: fengguang
Date:11/16/08
Description: 启动多线程去抽取网站数据库内容
Class List: ProcessServiceImpl
***********************************************************/
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import com.booksearch.dao.DailySaveDao;
import com.booksearch.service.htmlparser.HtmlParser;
import com.booksearch.util.UpdateUtilBean;
import com.booksearch.util.SessionBean;
/**
* Class:ProcessServiceImpl
* Description: 启动多线程去抽取网站数据库内容
* extens:no
* implements ProcessService
* @author feng guang
* @since 11/16/08
*/
public class ProcessServiceImpl implements ProcessService {
/*抽取网站内容接口引用*/
private HtmlParser dangDangParser;
private HtmlParser china_pubParser;
private HtmlParser zhuoYueParser;
private HtmlParser tsingHuaParser;
private HtmlParser bookschinaParser;
private HtmlParser gaoJaoParser;
/*记录日志*/
private static final Logger logger;
static
{
logger = Logger.getLogger(com.booksearch.service.process.ProcessServiceImpl.class);
}
public void setChina_pubParser(HtmlParser china_pubParser) {
this.china_pubParser = china_pubParser;
}
public void setDangDangParser(HtmlParser dangDangParser) {
this.dangDangParser = dangDangParser;
}
public void setTsingHuaParser(HtmlParser tsingHuaParser) {
this.tsingHuaParser = tsingHuaParser;
}
public void setZhuoYueParser(HtmlParser zhuoYueParser) {
this.zhuoYueParser = zhuoYueParser;
}
public void setBookschinaParser(HtmlParser bookschinaParser) {
this.bookschinaParser = bookschinaParser;
}
public void setGaoJaoParser(HtmlParser gaoJaoParser) {
this.gaoJaoParser = gaoJaoParser;
}
/**
* Function: startMultithread
* Description: 启动多线程去抽取网站数据库内容
* Calls: ThreadService().start()
* Called By: CrampDataAction.execute()
* @param no
* @return no
* @throws no
*/
public void startMultithread( HashMap<String,String> urlMap,SessionBean sessionBean){
if(urlMap.size()>0){
if(urlMap.containsKey("weilan"))urlMap.remove("weilan");
Set<Map.Entry<String, String>> entry=urlMap.entrySet();
Iterator<Map.Entry<String, String>> it=entry.iterator();
/*迭代,取出其中的网站名称和请求路径,启动线程去抽取网站内容*/
while(it.hasNext()){
Map.Entry<String,String> me=(Map.Entry<String,String>)it.next();
/*启动线程去当当网爬取数据*/
if("dangdang".equals(me.getKey())&&!"no".equals(me.getValue())){
new ThreadService(me.getKey(),me.getValue(),dangDangParser,sessionBean).start();
/*启动线程去china-pub网爬取数据*/
}else if("china_pub".equals(me.getKey())&&!"no".equals(me.getValue())){
new ThreadService(me.getKey(),me.getValue(),china_pubParser,sessionBean).start();
/*启动线程去卓越网爬取数据*/
}else if("zhuoyue".equals(me.getKey())&&!"no".equals(me.getValue())){
//new ThreadService(me.getKey(),me.getValue(),zhuoYueParser,sessionBean,dailySaveDao).start();
/*启动线程去清华出版社网爬取数据*/
}else if("tsinghua".equals(me.getKey())&&!"no".equals(me.getValue())){
new ThreadService(me.getKey(),me.getValue(),tsingHuaParser,sessionBean).start();
}else if("chinabook".equals(me.getKey())&&!"no".equals(me.getValue())){
new ThreadService(me.getKey(),me.getValue(),bookschinaParser,sessionBean).start();
}else if("gaojao".equals(me.getKey())&&!"no".equals(me.getValue())){
}
}
/*清空sessionBean中的下一页url hashmap*/
sessionBean.clearNextUrl();
/*因为发出请求到得到响应有一段时间,所以让主线程sleep 200毫秒*/
try {
Thread.currentThread().sleep(500);
} catch (InterruptedException e) {
logger.error(e);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -