專案存活監控
- 查詢資料庫監控資料
- 如果Redis中沒有報錯次數 size為null
- 回應狀態碼失敗
- 如果Redis中已經存在報錯次數 size不為null
- 專案地址回應不成功
- 回應成功
- 下發短信
- 下發微信
查詢資料庫監控資料

select
id, entry_name, ip,port, ver_url, phone,open_id,alarm_state ,state,release_start_time,release_end_time, create_Time, update_Time, delete_Time, flag
from mhaqjk.mhaq_survival
where flag = 0 and NOW() NOT BETWEEN release_start_time AND release_end_time

發起呼叫url 回傳回應狀態碼code,
查詢 Redis快取,回傳size(報錯次數)
如果Redis中沒有報錯次數 size為null
回應狀態碼失敗
如果redis中沒有size報錯次數,且專案地址訪問失敗,(報警狀態為0)就下發微信,
并且設定redis 為1;
否則(就是redis中沒有報錯次數,但是專案地址訪問通了,)就設定redis為0;

如果Redis中已經存在報錯次數 size不為null

專案地址回應不成功
(Redis中已經存在報警資訊,且專案地址不通)報警狀態為0,下發微信通知,
如果(報警次數等于1次或者小于3次),報警狀態為0,下發短信通知,
如果是(報警次數size大于33次了,就是半個小時后還是報錯),再次下發短信通知,
設定Redis 為1 ,(即重置Redis報警次數size),并更新資料,
并設定 平臺存活狀態status為0,更新資料,Redis中報錯次數+1;
回應成功
(Redis中已經存在報警次數size,但是這次回應成功)就把redis中報警次數重置為0 ,設定平臺存活狀態為1, 更新資料庫,
(只要平臺不通就下發微信,前三分鐘發短信,等到三十分鐘后再次發送短信)
下發短信

引數:MhaqSurvival
如果報警狀態是1的話,直接回傳,不發送短信;
否則的話就構建一個引數Map:templateParamsMap
引數:
String content="平臺:"+survival.getEntryName()+":"+survival.getVerUrl()+"失效";
獲取手機號碼String getPhones = survival.getPhone();
新建一個集合infos;
判斷獲取到的手機號碼是否為空,如果不為空,通過,,切割手機號碼字串,
新建一個日志物體類MhaqInfoLog infoLog = new MhaqInfoLog();
記錄發送日志資訊;
然后發送短信,引數是手機號,templateParamsMap
下發微信

如果報警狀態是1的話直接回傳,不用下發,
引數是:MhaqSurvival
獲得getOpenId,獲得urlgetVerUrl,
將OpenID通過,分割,

獲取時間time;
回圈遍歷OpenId陣列,新建paras集合,
List<TemplateParam> paras=new ArrayList<TemplateParam>();
paras.add(new TemplateParam("first","百事通加盟平臺存活預警:","#930093"));
paras.add(new TemplateParam("time",time,"#0044BB"));
paras.add(new TemplateParam("ip_list",verUrl,"#0044BB"));
paras.add(new TemplateParam("sec_type",content,"#0044BB"));
monitorService.sendMsgByWeiXing(paras, openId, time);
構建模板引數,下發微信,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/134502.html
標籤:其他
上一篇:MySQL資料庫的查詢
