⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 processserviceimpl.java

📁 本系统实现了从五个网站上搜索的图书进行整合后
💻 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 + -