監控平臺_專案存活監控(二)

2020-09-28 14:00:32

查詢資料庫監控資料

在這裡插入圖片描述

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);	

構建模板引數,下發微信。