Commit 56a2d38e by 马黎滨

采集预警方式修改

parent 07e166b9
...@@ -40,7 +40,7 @@ public class DouyinHotSearchCrawler { ...@@ -40,7 +40,7 @@ public class DouyinHotSearchCrawler {
* @return List<ZhihuHotSearch> 返回类型 * @return List<ZhihuHotSearch> 返回类型
*/ */
public static List<HotSearchList> getMobileDouyinHotList(){ public static List<HotSearchList> getMobileDouyinHotList(){
List<HotSearchList> list = null; List<HotSearchList> list = new ArrayList<>();
String url = "https://api.amemv.com/aweme/v1/hot/search/list/"; String url = "https://api.amemv.com/aweme/v1/hot/search/list/";
String htmlBody = null; String htmlBody = null;
Request request = RequestUtils.wrapGet(url); Request request = RequestUtils.wrapGet(url);
......
...@@ -48,6 +48,7 @@ public class BaiduHotSearchRun extends Thread{ ...@@ -48,6 +48,7 @@ public class BaiduHotSearchRun extends Thread{
if(Objects.nonNull(list) && !list.isEmpty()) { if(Objects.nonNull(list) && !list.isEmpty()) {
List<Document> data = hotSearchCacheDAO.addData(list); List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data); hotSearchDAO.addHotSearchList(data);
TipsUtils.recoveryTips("百度热搜",new Date());
} else { } else {
TipsUtils.sendTips("百度热搜",new Date()); TipsUtils.sendTips("百度热搜",new Date());
} }
......
...@@ -50,9 +50,11 @@ public class DouyinHotSearchRun extends Thread{ ...@@ -50,9 +50,11 @@ public class DouyinHotSearchRun extends Thread{
log.info("{}, 抖音热搜榜此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0)); log.info("{}, 抖音热搜榜此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0));
if(list == null || list.size() == 0){ if(list == null || list.size() == 0){
TipsUtils.sendTips("抖音热搜",new Date()); TipsUtils.sendTips("抖音热搜",new Date());
}else {
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
TipsUtils.recoveryTips("抖音热搜",new Date());
} }
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
log.info("抖音热搜榜采集结束........"); log.info("抖音热搜榜采集结束........");
} }
......
...@@ -46,9 +46,11 @@ public class SougoHotSearchRun extends Thread { ...@@ -46,9 +46,11 @@ public class SougoHotSearchRun extends Thread {
log.info("{}, 此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0)); log.info("{}, 此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0));
if(list == null || list.size() == 0){ if(list == null || list.size() == 0){
TipsUtils.sendTips("搜狗微信热搜",new Date()); TipsUtils.sendTips("搜狗微信热搜",new Date());
}else {
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
TipsUtils.sendTips("搜狗微信热搜",new Date());
} }
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
log.info("搜狗微信采集结束........"); log.info("搜狗微信采集结束........");
} }
......
...@@ -39,6 +39,7 @@ public class ThreadOneRun extends Thread { ...@@ -39,6 +39,7 @@ public class ThreadOneRun extends Thread {
} else { } else {
List<Document> data = hotSearchCacheDAO.addData(list); List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data); hotSearchDAO.addHotSearchList(data);
TipsUtils.sendTips("腾讯新闻",new Date());
} }
} }
} }
...@@ -42,9 +42,11 @@ public class ToutiaoHotSearchRun extends Thread{ ...@@ -42,9 +42,11 @@ public class ToutiaoHotSearchRun extends Thread{
log.info("{}, 今日头条此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0)); log.info("{}, 今日头条此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0));
if(list == null || list.size() == 0){ if(list == null || list.size() == 0){
TipsUtils.sendTips("今日头条热搜",new Date()); TipsUtils.sendTips("今日头条热搜",new Date());
}else {
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
TipsUtils.sendTips("今日头条热搜",new Date());
} }
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
log.info("今日头条热搜采集结束........"); log.info("今日头条热搜采集结束........");
} }
......
...@@ -40,9 +40,11 @@ public class WeiboHotSearchRun extends Thread{ ...@@ -40,9 +40,11 @@ public class WeiboHotSearchRun extends Thread{
log.info("{}, 微博此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0)); log.info("{}, 微博此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0));
if(list == null || list.size() == 0){ if(list == null || list.size() == 0){
TipsUtils.sendTips("微博热搜",new Date()); TipsUtils.sendTips("微博热搜",new Date());
}else {
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
TipsUtils.sendTips("微博热搜",new Date());
} }
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
} }
} }
...@@ -40,6 +40,8 @@ public class WeiboTopicRun extends Thread{ ...@@ -40,6 +40,8 @@ public class WeiboTopicRun extends Thread{
log.info("{}, 微博话题此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0)); log.info("{}, 微博话题此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0));
if(list == null || list.size() == 0){ if(list == null || list.size() == 0){
TipsUtils.sendTips("微博话题",new Date()); TipsUtils.sendTips("微博话题",new Date());
}else{
TipsUtils.sendTips("微博话题",new Date());
} }
List<Document> data = new ArrayList<>(); List<Document> data = new ArrayList<>();
for(HotSearchList topic : list){ for(HotSearchList topic : list){
......
...@@ -44,9 +44,11 @@ public class ZhihuChildHotSearchRun extends Thread { ...@@ -44,9 +44,11 @@ public class ZhihuChildHotSearchRun extends Thread {
log.info("{}, 知乎{}话题此轮采集到的数据量为:{}", new Date(),name, Integer.valueOf(list != null ? list.size() : 0)); log.info("{}, 知乎{}话题此轮采集到的数据量为:{}", new Date(),name, Integer.valueOf(list != null ? list.size() : 0));
if (list == null || list.size() == 0) { if (list == null || list.size() == 0) {
TipsUtils.sendTips("知乎热搜"+name+"分类", new Date()); TipsUtils.sendTips("知乎热搜"+name+"分类", new Date());
}else {
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
TipsUtils.sendTips("知乎热搜"+name+"分类",new Date());
} }
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
log.info("知乎{}话题热榜采集结束...", name); log.info("知乎{}话题热榜采集结束...", name);
ZhiWeiTools.sleep(3000); ZhiWeiTools.sleep(3000);
} }
......
...@@ -47,9 +47,11 @@ public class ZhihuHotSearchRun extends Thread{ ...@@ -47,9 +47,11 @@ public class ZhihuHotSearchRun extends Thread{
log.info("{}, 知乎此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0)); log.info("{}, 知乎此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0));
if(list == null || list.size() == 0){ if(list == null || list.size() == 0){
TipsUtils.sendTips("知乎热搜",new Date()); TipsUtils.sendTips("知乎热搜",new Date());
}else {
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
TipsUtils.sendTips("知乎热搜",new Date());
} }
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
log.info("知乎话题采集结束........"); log.info("知乎话题采集结束........");
} }
......
...@@ -39,9 +39,11 @@ public class ZhihuTopSearchRun extends Thread { ...@@ -39,9 +39,11 @@ public class ZhihuTopSearchRun extends Thread {
log.info("{}, 知乎热搜此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0)); log.info("{}, 知乎热搜此轮采集到的数据量为:{}", new Date(), Integer.valueOf(list != null ? list.size() : 0));
if(list == null || list.size() == 0){ if(list == null || list.size() == 0){
TipsUtils.sendTips("知乎热搜榜单",new Date()); TipsUtils.sendTips("知乎热搜榜单",new Date());
}else {
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
TipsUtils.sendTips("知乎热搜榜单",new Date());
} }
List<Document> data = hotSearchCacheDAO.addData(list);
hotSearchDAO.addHotSearchList(data);
log.info("知乎热搜话题采集结束........"); log.info("知乎热搜话题采集结束........");
} }
} }
package com.zhiwei.searchhotcrawler.util; package com.zhiwei.searchhotcrawler.util;
import com.zhiwei.searchhotcrawler.dao.HotSearchListDAO; import com.zhiwei.searchhotcrawler.dao.HotSearchListDAO;
import org.checkerframework.checker.units.qual.A;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.Date; import java.util.*;
/** /**
* 预警发送 * 预警发送
*/ */
public class TipsUtils { public class TipsUtils {
private static Long timeDifference = 5 * 60 * 1000L; private static Long timeDifference = 10 * 60 * 1000L;
private static String key = "a8e26ce3-8aaa-4d3e-bcf6-30b81526050b"; private static String key = "a8e26ce3-8aaa-4d3e-bcf6-30b81526050b";
private Logger logger = LoggerFactory.getLogger(TipsUtils.class); private Logger logger = LoggerFactory.getLogger(TipsUtils.class);
private static Map<String,Date> typeTips = new HashMap<>();
//未采集到数据发送预警信息 //未采集到数据发送预警信息
public static void sendTips(String type, Date time){ public static void sendTips(String type, Date time){
HotSearchListDAO hotSearchListDAO = new HotSearchListDAO(); HotSearchListDAO hotSearchListDAO = new HotSearchListDAO();
//获取数据库最后一条数据判断该程序几分钟没有采集到数据 //获取数据库最后一条数据判断该程序几分钟没有采集到数据
Date lastTime = hotSearchListDAO.getLastTimeByType(type); Date lastTime = hotSearchListDAO.getLastTimeByType(type);
if(time.getTime() - lastTime.getTime() > timeDifference){ if(time.getTime() - lastTime.getTime() > timeDifference){
//发送预警 if(!typeTips.containsKey(type)){
String crawlerContent = String.format("%s已经采集数据异常",type); //发送预警
// QYWechatUtil.send(key, QYWechatUtil.MSGTYPE_TEXT, crawlerContent, String crawlerContent = String.format("%s数据采集异常",type);
// null, null); QYWechatUtil.send(key, QYWechatUtil.MSGTYPE_TEXT, crawlerContent,
null, null);
}
typeTips.put(type,time);
}
}
//数据采集恢复发送通知
public static void recoveryTips(String type,Date time){
if(typeTips.containsKey(type)){
//最后一次未采集到数据的时间
Date lastTime = typeTips.get(type);
//两者比较,相差10分钟以上认为恢复采集
if(time.getTime() - lastTime.getTime() > timeDifference){
typeTips.remove(type);
//发送恢复通知
String crawlerContent = String.format("%s数据采集恢复正常",type);
QYWechatUtil.send(key, QYWechatUtil.MSGTYPE_TEXT, crawlerContent,
null, null);
}
} }
} }
} }
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