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報錯次數,且專案地址存取失敗,(報警狀態為0)就下發微信,
並且設定redis 為1;
否則(就是redis中沒有報錯次數,但是專案地址存取通了,)就設定redis為0;
(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);
構建模板引數,下發微信。