zoukankan      html  css  js  c++  java
  • MinerStoreThread.java 存储线程

    MinerStoreThread.java 存储线程

    package com.iteye.injavawetrust.miner;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    
    /**
     * 存储线程
     * @author InJavaWeTrust
     *
     */
    public class MinerStoreThread extends Thread {
    	
    	private static final Log LOG = LogFactory.getLog(MinerStoreThread.class);
    	
    	private MinerDB mdb = MinerDB.getInstance();
    	
    	private MinerConfig config = null;
    	
    	public MinerStoreThread(MinerConfig config) {
    		this.config = config;
    	}
    	
    	public void run() {
    		while(!MinerMonitorThread.done){
    			store();
    		}
    	}
    	
    	public synchronized void store(){
    		switch(config.getStoreType().getType()) {
    		case MinerConstanits.DB : dbStore(); break;
    		case MinerConstanits.FILE : fileStore(); break;
    		default : return;
    		}
    	}
    	/**
    	 * 数据库存储
    	 */
    	public synchronized void dbStore() {
    		Html html = MinerQueue.storePoll();
    		if(null == html || MinerUtil.isBlank(html.getHtml())){
    			return;
    		}
    		
    		Map<String, String> map = new HashMap<String, String>();
    		map.put("html", html.getHtml());
    		String title = MinerUtil.fileName(html.getUrl());
    		if(title == null || title.length() > 255){
    			return;
    		}
    		map.put("title", title);
    		MinerUtil.getHtmlToLocal(map);
    		
    		MinerBean bean = new MinerBean();
    		bean.setId(mdb.getUUID());
    		bean.setBatchNo(MinerUtil.getToday());
    		String path = (MinerConstanits.HTMLPATH + MinerUtil.getToday()).replaceAll("\\", "\\\\");
    		bean.setFilePath(path);
    		bean.setFileName(title);
    		String insertSql = mdb.getInsertSql(bean);
    		mdb.insert(insertSql);
    		
    		LOG.info("MinerStoreThread 当前线程[" + Thread.currentThread().getName() + "]");
    	}
    	/**
    	 * 文件存储
    	 */
    	public synchronized void fileStore() {
    		Html html = MinerQueue.storePoll();
    		if(null == html || MinerUtil.isBlank(html.getHtml())){
    			return;
    		}
    		Map<String, String> map = new HashMap<String, String>();
    		map.put("html", html.getHtml());
    		String title = MinerUtil.fileName(html.getUrl());
    		if(title == null || title.length() > 255){
    			return;
    		}
    		map.put("title", title);
    		MinerUtil.getHtmlToLocal(map);
    		LOG.info("MinerStoreThread 当前线程[" + Thread.currentThread().getName() + "]");
    	}
    
    }
    

    返回列表

  • 相关阅读:
    python assert断言函数
    Python中错误之 TypeError: object() takes no parameters、TypeError: this constructor takes no arguments
    python 3.5构建WINDOWS推送服务
    Python调用(运行)外部程序
    sqlalchemy相关知识
    利用rabbit_mq队列消息实现对一组主机进行命令下发
    Centos 下安装Zabbix Linux 客户端
    Lynis 2.2.0 :面向Linux系统的安全审查和扫描工具
    防暴力破解 Fail2Ban之python
    linux服务器被攻击处理过程
  • 原文地址:https://www.cnblogs.com/new0801/p/6146685.html
Copyright © 2011-2022 走看看