Quellcode durchsuchen

增加art.pcoloring.com网站监测

guoziyun vor 1 Jahr
Ursprung
Commit
2ea01cbbe0
2 geänderte Dateien mit 57 neuen und 0 gelöschten Zeilen
  1. 56 0
      service/monitor/check-api.js
  2. 1 0
      service/monitor/sms-templates.js

+ 56 - 0
service/monitor/check-api.js

@@ -224,6 +224,35 @@ async function checkArtPuzzleLatest() {
   }
 }
 
+// 检查art.pcoloring.com网站
+async function checkArtSite() {
+  let url = `https://art.pcoloring.com/en`;
+  let data;
+  try {
+    let resp = await axios.get(url);
+    data = resp.data;
+  } catch (e) {
+    console.error('art.pcoloring.com 网站无法访问,请及时检查', [e.message]);
+    return {
+      result: false,
+      errcode: 1000,
+      title: 'art.pcoloring.com 网站无法访问,请及时检查',
+      sms: SmsTemplate.SMS_PCOLORING_ERROR,
+      data: [e.message],
+    }
+  }
+
+  return {
+    result: true,
+    errcode: 0,
+    title: 'art.pcoloring.com 网站正常运行',
+    sms: SmsTemplate.SMS_RESUME,
+    data: ['art.pcoloring.com 网站正常运行']
+  }
+}
+
+
+
 async function run(lastErrCode = 0) {
   console.log("check api...", new Date());
   try {
@@ -307,6 +336,33 @@ async function run(lastErrCode = 0) {
       }
     }
 
+
+    for (let i = 0; i < 3; i++) {
+      result = await checkArtSite();
+      console.log(result);
+      if (!result.result) {
+        console.warn("检查art.pcoloring.com网站服务出现异常,一分钟后重试");
+        await delay(60 * 1000);
+      } else {
+        console.warn("art.pcoloring.com网站一切正常");
+        break;
+      }
+    }
+    if (!result.result) {
+      console.error("连续3次检查art.pcoloring.com网站服务异常,发送通知");
+      sendEmail(result.title, result.data);
+      sendSms(result.sms);
+      console.log("5分钟后再试");
+      setTimeout(run, 5 * 60 * 1000, result.errcode);
+      return;
+    } else {
+      // 如果上次时出错的情况, 那么属于服务恢复,发送恢复通知
+      if (lastErrCode == 1000) {
+        sendEmail(result.title, result.data);
+        sendSms(result.sms);
+      }
+    }
+
   } catch (err) {
     console.error(err.stack);
   }

+ 1 - 0
service/monitor/sms-templates.js

@@ -4,4 +4,5 @@ module.exports = {
   SMS_SYNC_ERROR: '2341060', // 线上数据不同步
   SMS_HEARTBEAT: '2341055',  // monitor心跳提醒
   SMS_RESUME: '2394348',  // 服务恢复正常
+  SMS_PCOLORING_ERROR: '2402346', // art.pcoloring.com 网站访问异常
 }