您的位置:首页 > 编程语言 > Java开发

MinerStoreThread.java 存储线程

2016-03-27 09:35 260 查看
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() + "]");
}

}


返回列表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: