Commit d3eb81c6 by zhiwei

处理模版误报问题

parent d1f1a506
...@@ -21,19 +21,16 @@ import com.zhiwei.manage.bean.Channel; ...@@ -21,19 +21,16 @@ import com.zhiwei.manage.bean.Channel;
import com.zhiwei.manage.bean.Data; import com.zhiwei.manage.bean.Data;
import com.zhiwei.manage.bean.FieldIntegerity; import com.zhiwei.manage.bean.FieldIntegerity;
import com.zhiwei.manage.bean.Message; import com.zhiwei.manage.bean.Message;
import com.zhiwei.manage.bean.Messages;
import com.zhiwei.manage.bean.NewsDelayed; import com.zhiwei.manage.bean.NewsDelayed;
import com.zhiwei.manage.bean.PingUrl; import com.zhiwei.manage.bean.PingUrl;
import com.zhiwei.manage.bean.ServerBean;
import com.zhiwei.manage.bean.Template; import com.zhiwei.manage.bean.Template;
import com.zhiwei.manage.orm.BeanFactory; import com.zhiwei.manage.orm.BeanFactory;
import com.zhiwei.manage.service.CrawTemplateServiceImpl; import com.zhiwei.manage.service.CrawTemplateServiceImpl;
import com.zhiwei.manage.service.DataServiceImpl; import com.zhiwei.manage.service.DataServiceImpl;
import com.zhiwei.manage.service.MessageServiceImpl; import com.zhiwei.manage.service.MessageServiceImpl;
import com.zhiwei.manage.service.ServerServiceImpl; import com.zhiwei.manage.service.ServerServiceImpl;
import com.zhiwei.manage.util.Config; import com.zhiwei.manage.service.TemplateServiceImpl;
import com.zhiwei.manage.util.ESUtil; import com.zhiwei.manage.util.ESUtil;
import com.zhiwei.manage.util.SendMailUtil;
import com.zhiwei.manage.util.TimeUtil; import com.zhiwei.manage.util.TimeUtil;
/** /**
...@@ -56,7 +53,7 @@ public class MainThread extends Thread { ...@@ -56,7 +53,7 @@ public class MainThread extends Thread {
counts.put("微博", 2000); counts.put("微博", 2000);
counts.put("微信", 3500); counts.put("微信", 3500);
counts.put("知乎", 300); counts.put("知乎", 300);
// counts.put("平媒", 300); counts.put("平媒", 300);
counts.put("今日头条", 1000); counts.put("今日头条", 1000);
counts.put("贴吧", 250); counts.put("贴吧", 250);
counts.put("论坛", 30); counts.put("论坛", 30);
...@@ -174,8 +171,14 @@ public class MainThread extends Thread { ...@@ -174,8 +171,14 @@ public class MainThread extends Thread {
DataServiceImpl dataService = BeanFactory.getBean(DataServiceImpl.class); DataServiceImpl dataService = BeanFactory.getBean(DataServiceImpl.class);
ServerServiceImpl serverService = BeanFactory.getBean(ServerServiceImpl.class); ServerServiceImpl serverService = BeanFactory.getBean(ServerServiceImpl.class);
MessageServiceImpl messageService = BeanFactory.getBean(MessageServiceImpl.class); MessageServiceImpl messageService = BeanFactory.getBean(MessageServiceImpl.class);
TemplateServiceImpl templateService = BeanFactory.getBean(TemplateServiceImpl.class);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");
List<Channel> channel = serverService.findDisChannel(); List<Channel> channel = serverService.findDisChannel();
/**初始化模版列表***/
if(allTmp==null) {
templateService.findAll();
}
Calendar loop = Calendar.getInstance(); Calendar loop = Calendar.getInstance();
while (true) { while (true) {
Calendar start = Calendar.getInstance(); Calendar start = Calendar.getInstance();
...@@ -190,38 +193,10 @@ public class MainThread extends Thread { ...@@ -190,38 +193,10 @@ public class MainThread extends Thread {
start.set(Calendar.HOUR_OF_DAY, 0); start.set(Calendar.HOUR_OF_DAY, 0);
start.setTime(sdf.parse(sdf.format(start.getTime()))); start.setTime(sdf.parse(sdf.format(start.getTime())));
end.setTime(sdf.parse(sdf.format(end.getTime()))); end.setTime(sdf.parse(sdf.format(end.getTime())));
int count = 0;
channel = serverService.findDisChannel(); Thread.sleep(1000 * 10);
for (Channel chan : channel) {
map.put(chan.getPt(), chan.getValue());
try {
ServerBean ser = serverService.findServer(chan.getPt());
count = es.getCountByPt(start.getTime(), end.getTime(), chan.getPt(), chan.getValue(), ser);// 当日的数据量
System.out.println(count);
Data data = new Data();
data.setCount(count);
data.setPt(chan.getPt());
data.setTime(start.getTime());
dataService.insert(data);
log.info(sdf.format(start.getTime()) + "|" + chan.getPt() + "|入库");
count = es.getCountByPt(inTime.getTime(), end.getTime(), chan.getPt(), chan.getValue(), ser);// 小时的数据量
if (inTime.get(Calendar.HOUR_OF_DAY) > 6)
if (counts.get(chan.getPt()) != null)
if (count < counts.get(chan.getPt())) {
Messages m = new Messages();
m.setTitle("渠道低数据量预警{" + chan.getPt() + "}");
m.setContent("1小时内的数据量为:" + count);
m.setDate(sdf.format(start.getTime()));
for (String mail : Config.getVal("count_mail").split(",")) {
SendMailUtil.sendMessage(mail, m);
}
}
} catch (Exception e) {
log.error(chan.getPt() + "入库出错,错误信息{}", e);
}
}
Thread.sleep(1000 * 120);
Set<String> keys = allTmp.keySet(); Set<String> keys = allTmp.keySet();
System.out.println("keys size is :::"+ keys.size());
List<String> needRemove = new ArrayList<>(); List<String> needRemove = new ArrayList<>();
for (Iterator<String> it = keys.iterator(); it.hasNext();) { for (Iterator<String> it = keys.iterator(); it.hasNext();) {
String key = it.next(); String key = it.next();
...@@ -231,6 +206,7 @@ public class MainThread extends Thread { ...@@ -231,6 +206,7 @@ public class MainThread extends Thread {
String pt = crawService.findPt(tmp.getSpyderInfoId()); String pt = crawService.findPt(tmp.getSpyderInfoId());
cwCount = es.getCounts(start.getTime(), end.getTime(), pt, map.get(pt), tmp.getSpyderInfoId(), cwCount = es.getCounts(start.getTime(), end.getTime(), pt, map.get(pt), tmp.getSpyderInfoId(),
serverService.findServer(pt)); serverService.findServer(pt));
log.info(tmp.getTempName()+"====="+start.getTime()+"======"+end.getTime()+"======"+pt+"====="+cwCount);
try { try {
Data data = new Data(); Data data = new Data();
data.setCount(cwCount); data.setCount(cwCount);
...@@ -243,6 +219,7 @@ public class MainThread extends Thread { ...@@ -243,6 +219,7 @@ public class MainThread extends Thread {
loop.add(Calendar.DATE, -2); loop.add(Calendar.DATE, -2);
cwCount = es.getCounts(start.getTime(), end.getTime(), pt, map.get(pt), cwCount = es.getCounts(start.getTime(), end.getTime(), pt, map.get(pt),
tmp.getSpyderInfoId(), serverService.findServer(pt)); tmp.getSpyderInfoId(), serverService.findServer(pt));
log.info(tmp.getTempName()+"====="+start.getTime()+"======"+end.getTime()+"======"+pt+"====="+cwCount);
if (cwCount < 3) { if (cwCount < 3) {
if (StringUtils.isBlank(tmp.getTempName())) { if (StringUtils.isBlank(tmp.getTempName())) {
continue; continue;
......
...@@ -133,70 +133,6 @@ public class Task implements Runnable { ...@@ -133,70 +133,6 @@ public class Task implements Runnable {
} }
} }
} }
// if (field != null) {//字段缺失率,采集部分已经对缺失字段做了处理,没什么必要检测了
// if (MainThread.mainMap.get(field.getTemplateId()) != null) {
// List<Map<String, Object>> list = newsService.findNews(field.getHost(),
// field.getPort(),
// field.getdBName(), field.getCollection(), field.getTestCount(),
// field.getSpyderInfoId(),
// field.getPt());
// if (list.size() ==0) {
// Template tp = MainThread.mainMap.get(field.getTemplateId());
// Message msg = new Message();
// msg.setCreateDate(new Date());
// msg.setErrorMsg("字段检测发现库内的数据为0");
// msg.setHandle(false);
// msg.setPt(field.getPt());
// msg.setTemplateCreator(tp.getCreator());
// msg.setTemplateLv(tp.getTemplateLv());
// msg.setErrorType("count2");
// msg.setTempName(field.getTempName());
// messageService.update(msg,field.getPt());
// } else {
// Message msg = messageService.findMsg(field.getTempName(), "count2");
// if (msg != null) {
// List<String> ids = new ArrayList<>();
// ids.add(msg.getMessageId());
// messageService.delete(ids, field.getPt());
// }
// }
// String[] fields = field.getField().split(",");
// int count = list.size();
// for (String fid : fields) {
// String str = "";
// int num = count;
// for (Map<String, Object> map : list) {
// if (map.get(fid) == null) {
// num--;
// str = String.valueOf(map.get("_id"));
// } else if (String.valueOf(map.get(fid)).length() < 1) {
// num--;
// str = String.valueOf(map.get("_id"));
// }
// }
// if (num / 1.0 / count < field.getFieldIntegrityRate() / 100.0) {
// Template tp = MainThread.mainMap.get(field.getTemplateId());
// Message msg = new Message();
// msg.setCreateDate(new Date());
// msg.setErrorMsg(fid + "字段存在缺失,完整率" + num / 1.0 / count + "其中一条:" + str);
// msg.setHandle(false);
// msg.setPt(field.getPt());
// msg.setErrorType("field");
// msg.setTemplateCreator(tp.getCreator());
// msg.setTemplateLv(tp.getTemplateLv());
// msg.setTempName(field.getTempName());
// messageService.update(msg,field.getPt());
// } else {
// Message msg = messageService.findMsg(field.getTempName(), "field");
// if (msg != null) {
// List<String> ids = new ArrayList<>();
// ids.add(msg.getMessageId());
// messageService.delete(ids, field.getPt());
// }
// }
// }
// }
// }
if (delayed != null) { if (delayed != null) {
log.info(delayed.getTempName() + "开始检测"); log.info(delayed.getTempName() + "开始检测");
if (MainThread.mainMap.get(delayed.getTemplateId()) != null) { if (MainThread.mainMap.get(delayed.getTemplateId()) != null) {
......
...@@ -28,7 +28,12 @@ public class CrawTemplateServiceImpl implements CrawTemplateService { ...@@ -28,7 +28,12 @@ public class CrawTemplateServiceImpl implements CrawTemplateService {
@Override @Override
public String findPt(String spyId) { public String findPt(String spyId) {
CrawTemplate ct=crawDao.getPt(spyId); CrawTemplate ct=crawDao.getPt(spyId);
return getPtByCt(ct); if(ct!=null) {
return getPtByCt(ct);
}else {
return null;
}
} }
......
...@@ -5,33 +5,23 @@ import java.text.SimpleDateFormat; ...@@ -5,33 +5,23 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client; import org.elasticsearch.client.Client;
import org.elasticsearch.common.recycler.Recycler.C;
import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.sort.SortBuilder;
import org.elasticsearch.search.sort.SortOrder;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.Data; import com.zhiwei.manage.bean.Data;
import com.zhiwei.manage.bean.EasyNews;
import com.zhiwei.manage.bean.ServerBean; import com.zhiwei.manage.bean.ServerBean;
import com.zhiwei.manage.handle.DbDepot; import com.zhiwei.manage.handle.DbDepot;
import com.zhiwei.manage.handle.MainThread; import com.zhiwei.manage.handle.MainThread;
import com.zhiwei.manage.orm.BeanFactory;
import com.zhiwei.manage.service.CrawTemplateService; import com.zhiwei.manage.service.CrawTemplateService;
/** /**
...@@ -98,7 +88,7 @@ public class ESUtil { ...@@ -98,7 +88,7 @@ public class ESUtil {
esClient.close(); esClient.close();
return (int) searchHits.getTotalHits(); return (int) searchHits.getTotalHits();
} catch (Exception e) { } catch (Exception e) {
log.error("es检索出错,错误信息【{}】", e); log.error("es检索出错,错误信息【{}】", e.fillInStackTrace());
} }
return 0; return 0;
} }
...@@ -169,7 +159,7 @@ public class ESUtil { ...@@ -169,7 +159,7 @@ public class ESUtil {
list.add(map); list.add(map);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("es检索出错,错误信息【{}】", e); log.error("es检索出错,错误信息【{}】", e.fillInStackTrace());
} }
return list; return list;
} }
...@@ -240,7 +230,7 @@ public class ESUtil { ...@@ -240,7 +230,7 @@ public class ESUtil {
loopTime.add(Calendar.HOUR_OF_DAY, 1); loopTime.add(Calendar.HOUR_OF_DAY, 1);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("es检索出错,错误信息【{}】", e); log.error("es检索出错,错误信息【{}】", e.fillInStackTrace());
} }
return list; return list;
} }
...@@ -248,10 +238,8 @@ public class ESUtil { ...@@ -248,10 +238,8 @@ public class ESUtil {
public int getCounts(Date start, Date end, String pt, String value, String spid, ServerBean ser) { public int getCounts(Date start, Date end, String pt, String value, String spid, ServerBean ser) {
Calendar startTime = Calendar.getInstance(); Calendar startTime = Calendar.getInstance();
startTime.setTime(start); startTime.setTime(start);
// startTime.add(Calendar.HOUR, -8);
Calendar endTime = Calendar.getInstance(); Calendar endTime = Calendar.getInstance();
endTime.setTime(end); endTime.setTime(end);
// endTime.add(Calendar.HOUR, -8);
Client esClient=null; Client esClient=null;
try { try {
esClient = getClient(pt, ser); esClient = getClient(pt, ser);
...@@ -265,9 +253,13 @@ public class ESUtil { ...@@ -265,9 +253,13 @@ public class ESUtil {
srb.setSize(1); srb.setSize(1);
SearchResponse response = srb.execute().actionGet(); SearchResponse response = srb.execute().actionGet();
SearchHits searchHits = response.getHits(); SearchHits searchHits = response.getHits();
return (int) searchHits.getTotalHits(); if(searchHits!=null) {
return (int) searchHits.getTotalHits();
}
return 0;
} catch (Exception e) { } catch (Exception e) {
log.error("es检索出错,错误信息【{}】", e); e.fillInStackTrace();
log.error("es检索出错,错误信息【{}】", e.fillInStackTrace());
} }
return 0; return 0;
} }
...@@ -299,9 +291,12 @@ public class ESUtil { ...@@ -299,9 +291,12 @@ public class ESUtil {
srb.setSize(1); srb.setSize(1);
SearchResponse response = srb.execute().actionGet(); SearchResponse response = srb.execute().actionGet();
SearchHits searchHits = response.getHits(); SearchHits searchHits = response.getHits();
return (int) searchHits.getTotalHits(); if(searchHits!=null) {
return (int) searchHits.getTotalHits();
}
return 0;
} catch (Exception e) { } catch (Exception e) {
log.error("es检索出错,错误信息【{}】", e); log.error("es检索出错,错误信息【{}】", e.fillInStackTrace());
} }
return 0; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment