Commit 103ea399 by admin

增加邮件预警任务

parent 5d115e3e
......@@ -163,10 +163,10 @@ public class MainThread extends Thread {
CrawTemplateServiceImpl crawService = BeanFactory.getBean(CrawTemplateServiceImpl.class);
DataServiceImpl dataService = BeanFactory.getBean(DataServiceImpl.class);
ServerServiceImpl serverService = BeanFactory.getBean(ServerServiceImpl.class);
MessageServiceImpl messageService=BeanFactory.getBean(MessageServiceImpl.class);
MessageServiceImpl messageService = BeanFactory.getBean(MessageServiceImpl.class);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");
List<Channel> channel = serverService.findDisChannel();
Calendar loop=Calendar.getInstance();
Calendar loop = Calendar.getInstance();
while (true) {
Calendar start = Calendar.getInstance();
if (start.get(Calendar.HOUR_OF_DAY) < 1) {
......@@ -182,8 +182,8 @@ public class MainThread extends Thread {
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);
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);
......@@ -196,7 +196,9 @@ public class MainThread extends Thread {
Messages m = new Messages();
m.setTitle("渠道低数据量预警{" + chan.getPt() + "}");
m.setContent("1小时内的数据量为:" + count);
SendMailUtil.sendMessage(Config.getVal("count_mail"), m);
for (String mail : Config.getVal("count_mail").split(",")) {
SendMailUtil.sendMessage(mail, m);
}
}
} catch (Exception e) {
log.error(chan.getPt() + "入库出错,错误信息{}", e);
......@@ -210,7 +212,7 @@ public class MainThread extends Thread {
int cwCount = 0;
String pt = crawService.findPt(tmp.getSpyderInfoId());
cwCount = (int) es.getCounts(start.getTime(), end.getTime(), pt, map.get(pt),
tmp.getSpyderInfoId(),serverService.findServer(pt));
tmp.getSpyderInfoId(), serverService.findServer(pt));
try {
Data data = new Data();
data.setCount(cwCount);
......@@ -218,13 +220,13 @@ public class MainThread extends Thread {
data.setTempName(tmp.getTempName());
dataService.insert(data);
log.info(TimeUtil.yearToDay(start.getTime()) + "|" + tmp.getTempName() + "|入库");
if(cwCount==0) {
if (cwCount == 0) {
loop.setTime(start.getTime());
loop.add(Calendar.DATE, -2);
cwCount = (int) es.getCounts(start.getTime(), end.getTime(), pt, map.get(pt),
tmp.getSpyderInfoId(),serverService.findServer(pt));
if(cwCount<3) {
Message msg=new Message();
tmp.getSpyderInfoId(), serverService.findServer(pt));
if (cwCount < 3) {
Message msg = new Message();
msg.setCreateDate(new Date());
msg.setErrorMsg("连续三天数据不足3条,请确认采集是否有问题");
msg.setPt(pt);
......
......@@ -218,10 +218,12 @@ public class Task implements Runnable {
Date time = null;
Date savetime = null;
if (map.get(delayed.getTime()) != null) {
String date=null;
try {
String date = String.valueOf(map.get(delayed.getTime())).replace("Z", " UTC");
date = String.valueOf(map.get(delayed.getTime())).replace("Z", " UTC");
time = sdf.parse(String.valueOf(date));
} catch (ParseException e) {
log.info("时间:"+date);
log.error("时间转换出错【{}】",e);
}
}
......@@ -258,7 +260,6 @@ public class Task implements Runnable {
for (int i = cutSize; i < dNum.size(); i++) {
sum -= dNum.get(i);
}
System.out.println(sum);
if (sum / 1.0 / 1000 / 60 / cutSize > delayed.getNewsDelayed()) {
Template tp = MainThread.mainMap.get(delayed.getTemplateId());
Message msg = new Message();
......
......@@ -251,12 +251,7 @@ public class ESUtil {
// endTime.add(Calendar.HOUR, -8);
Client esClient=null;
try {
if (DbDepot.esClients.get(ser.getPt()) == null) {
esClient = new ESClient(ser.getDbName(), ser.getDbHost(), ser.getDbPort()).getClient();
DbDepot.esClients.put(ser.getPt(), esClient);
} else {
esClient = (Client) DbDepot.esClients.get(ser.getPt());
}
esClient = getClient(pt, ser);
// 搜索数据
SearchRequestBuilder srb = esClient.prepareSearch(ser.getCollection());
BoolQueryBuilder bb = new BoolQueryBuilder();
......@@ -292,12 +287,7 @@ public class ESUtil {
endTime.add(Calendar.HOUR, -8);
Client esClient=null;
try {
if (DbDepot.esClients.get(ser.getPt()) == null) {
esClient = new ESClient(ser.getDbName(), ser.getDbHost(), ser.getDbPort()).getClient();
DbDepot.esClients.put(ser.getPt(), esClient);
} else {
esClient = (Client) DbDepot.esClients.get(ser.getPt());
}
esClient = getClient(pt, ser);
// 搜索数据
SearchRequestBuilder srb = esClient.prepareSearch(ser.getCollection());
BoolQueryBuilder bb = new BoolQueryBuilder();
......@@ -313,6 +303,17 @@ public class ESUtil {
return 0;
}
private synchronized Client getClient(String pt, ServerBean ser) {
Client esClient;
if (DbDepot.esClients.get(pt) == null) {
esClient = new ESClient(ser.getDbName(), ser.getDbHost(), ser.getDbPort()).getClient();
DbDepot.esClients.put(ser.getPt(), esClient);
} else {
esClient = (Client) DbDepot.esClients.get(pt);
}
return esClient;
}
private static void addQuerys(String pt, Calendar startTime, Calendar endTime, SearchRequestBuilder srb,
BoolQueryBuilder bb) {
if (pt.equals("微博")) {
......
......@@ -32,4 +32,4 @@ wechat.indexName=mediaspider*
mobile.indexName=mediaspider*
toutiao.indexName=mediaspider*
###########################################
count_mail=shenjinzhu999@163.com
\ No newline at end of file
count_mail=shenjinzhu999@163.com,zhangzhiwei@zhiweidata.com
\ No newline at end of file
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