Explorar el Código

feat(task): 添加 API 调用性能统计和错误日志
- 优化了代码结构

wui hace 9 meses
padre
commit
321747eabc
Se han modificado 1 ficheros con 160 adiciones y 76 borrados
  1. 160 76
      src/task/task.service.ts

+ 160 - 76
src/task/task.service.ts

@@ -712,9 +712,10 @@ export class TaskService implements OnModuleInit {
             smspva: 0,
             smspva02: 0
         }
-        const cloudInstance = axios.create({
-            baseURL: 'http://52.77.17.214:9001/api/'
-        })
+        // const cloudInstance = axios.create({
+        //     baseURL: 'http://52.77.17.214:9001/api/',
+        //     timeout: 5000 // 设置5秒超时
+        // })
         const xyzInstance = axios.create({
             baseURL: 'http://113.28.178.155:8003/api/'
         })
@@ -727,8 +728,14 @@ export class TaskService implements OnModuleInit {
         const smspvaInstance = axios.create({
             baseURL: 'https://api.smspva.com/activation/'
         })
+
+        // 创建性能日志对象
+        const perfLogs = {}
+
         await Promise.all([
             (async () => {
+                const startTime = Date.now()
+                perfLogs['durian'] = { startTime }
                 try {
                     const durianRes = await axios
                         .create({
@@ -747,9 +754,16 @@ export class TaskService implements OnModuleInit {
                     if (durianRes.data.code === 200) {
                         res.durian = durianRes.data.data.score
                     }
-                } catch (e) {}
+                } catch (e) {
+                    Logger.warn(`durian API调用失败: ${e.message}`, this.TAG)
+                }
+                perfLogs['durian'].endTime = Date.now()
+                perfLogs['durian'].duration = perfLogs['durian'].endTime - perfLogs['durian'].startTime
+                Logger.log(`API调用性能统计 - durian: ${perfLogs['durian'].duration}ms`, this.TAG)
             })(),
             (async () => {
+                const startTime = Date.now()
+                perfLogs['durian02'] = { startTime }
                 try {
                     const durianRes02 = await axios
                         .create({
@@ -768,9 +782,16 @@ export class TaskService implements OnModuleInit {
                     if (durianRes02.data.code === 200) {
                         res.durian02 = durianRes02.data.data.score
                     }
-                } catch (e) {}
+                } catch (e) {
+                    Logger.warn(`durian02 API调用失败: ${e.message}`, this.TAG)
+                }
+                perfLogs['durian02'].endTime = Date.now()
+                perfLogs['durian02'].duration = perfLogs['durian02'].endTime - perfLogs['durian02'].startTime
+                Logger.log(`API调用性能统计 - durian02: ${perfLogs['durian02'].duration}ms`, this.TAG)
             })(),
             (async () => {
+                const startTime = Date.now()
+                perfLogs['cowboy'] = { startTime }
                 try {
                     const cowboyRes = await axios
                         .create({
@@ -789,9 +810,16 @@ export class TaskService implements OnModuleInit {
                     if (cowboyRes.data.code === 200) {
                         res.cowboy = cowboyRes.data.data.score
                     }
-                } catch (e) {}
+                } catch (e) {
+                    Logger.warn(`cowboy API调用失败: ${e.message}`, this.TAG)
+                }
+                perfLogs['cowboy'].endTime = Date.now()
+                perfLogs['cowboy'].duration = perfLogs['cowboy'].endTime - perfLogs['cowboy'].startTime
+                Logger.log(`API调用性能统计 - cowboy: ${perfLogs['cowboy'].duration}ms`, this.TAG)
             })(),
             (async () => {
+                const startTime = Date.now()
+                perfLogs['xyz'] = { startTime }
                 try {
                     const xyz = await xyzInstance.get('v1', {
                         params: {
@@ -803,74 +831,101 @@ export class TaskService implements OnModuleInit {
                     if (parts[0] === '0') {
                         res.xyz = parts[1] < 0 ? 0 : parts[1]
                     }
-                } catch (e) {}
-            })(),
-            (async () => {
-                try {
-                    const cloud033Res = await cloudInstance.get('userBalance', {
-                        params: {
-                            userid: '100033',
-                            token: '1e40ca9795b1fc038db76512175d59b5'
-                        }
-                    })
-                    if (cloud033Res.data.code === '1001') {
-                        res.cloud033 = cloud033Res.data.data.integral
-                    }
-                } catch (e) {}
-            })(),
-            (async () => {
-                try {
-                    const cloud034Res = await cloudInstance.get('userBalance', {
-                        params: {
-                            userid: '100034',
-                            token: '54bdd0d9dd6707b2b40d8deb5edb1385'
-                        }
-                    })
-                    if (cloud034Res.data.code === '1001') {
-                        res.cloud034 = cloud034Res.data.data.integral
-                    }
-                } catch (e) {}
-            })(),
-            (async () => {
-                try {
-                    const cloud037Res = await cloudInstance.get('userBalance', {
-                        params: {
-                            userid: '100037',
-                            token: 'aaec6c21e54dc53b92e472df21a95bb7'
-                        }
-                    })
-                    if (cloud037Res.data.code === '1001') {
-                        res.cloud037 = cloud037Res.data.data.integral
-                    }
-                } catch (e) {}
-            })(),
-            (async () => {
-                try {
-                    const cloud041Res = await cloudInstance.get('userBalance', {
-                        params: {
-                            userid: '100041',
-                            token: '8174f3107605645d17fd6c5edc0bfb7d'
-                        }
-                    })
-                    if (cloud041Res.data.code === '1001') {
-                        res.cloud041 = cloud041Res.data.data.integral
-                    }
-                } catch (e) {}
-            })(),
-            (async () => {
-                try {
-                    const cloud050Res = await cloudInstance.get('userBalance', {
-                        params: {
-                            userid: '100050',
-                            token: '6c0f25c802b82d2a5c78f01fb627be2c'
-                        }
-                    })
-                    if (cloud050Res.data.code === '1001') {
-                        res.cloud050 = cloud050Res.data.data.integral
-                    }
-                } catch (e) {}
+                } catch (e) {
+                    Logger.warn(`xyz API调用失败: ${e.message}`, this.TAG)
+                }
+                perfLogs['xyz'].endTime = Date.now()
+                perfLogs['xyz'].duration = perfLogs['xyz'].endTime - perfLogs['xyz'].startTime
+                Logger.log(`API调用性能统计 - xyz: ${perfLogs['xyz'].duration}ms`, this.TAG)
             })(),
+            // (async () => {
+            //     const startTime = Date.now()
+            //     perfLogs['cloud033'] = { startTime }
+            //     try {
+            //         const cloud033Res = await cloudInstance.get('userBalance', {
+            //             params: {
+            //                 userid: '100033',
+            //                 token: '1e40ca9795b1fc038db76512175d59b5'
+            //             }
+            //         })
+            //         if (cloud033Res.data.code === '1001') {
+            //             res.cloud033 = cloud033Res.data.data.integral
+            //         }
+            //     } catch (e) {}
+            //     perfLogs['cloud033'].endTime = Date.now()
+            //     perfLogs['cloud033'].duration = perfLogs['cloud033'].endTime - perfLogs['cloud033'].startTime
+            // })(),
+            // (async () => {
+            //     const startTime = Date.now()
+            //     perfLogs['cloud034'] = { startTime }
+            //     try {
+            //         const cloud034Res = await cloudInstance.get('userBalance', {
+            //             params: {
+            //                 userid: '100034',
+            //                 token: '54bdd0d9dd6707b2b40d8deb5edb1385'
+            //             }
+            //         })
+            //         if (cloud034Res.data.code === '1001') {
+            //             res.cloud034 = cloud034Res.data.data.integral
+            //         }
+            //     } catch (e) {}
+            //     perfLogs['cloud034'].endTime = Date.now()
+            //     perfLogs['cloud034'].duration = perfLogs['cloud034'].endTime - perfLogs['cloud034'].startTime
+            // })(),
+            // (async () => {
+            //     const startTime = Date.now()
+            //     perfLogs['cloud037'] = { startTime }
+            //     try {
+            //         const cloud037Res = await cloudInstance.get('userBalance', {
+            //             params: {
+            //                 userid: '100037',
+            //                 token: 'aaec6c21e54dc53b92e472df21a95bb7'
+            //             }
+            //         })
+            //         if (cloud037Res.data.code === '1001') {
+            //             res.cloud037 = cloud037Res.data.data.integral
+            //         }
+            //     } catch (e) {}
+            //     perfLogs['cloud037'].endTime = Date.now()
+            //     perfLogs['cloud037'].duration = perfLogs['cloud037'].endTime - perfLogs['cloud037'].startTime
+            // })(),
+            // (async () => {
+            //     const startTime = Date.now()
+            //     perfLogs['cloud041'] = { startTime }
+            //     try {
+            //         const cloud041Res = await cloudInstance.get('userBalance', {
+            //             params: {
+            //                 userid: '100041',
+            //                 token: '8174f3107605645d17fd6c5edc0bfb7d'
+            //             }
+            //         })
+            //         if (cloud041Res.data.code === '1001') {
+            //             res.cloud041 = cloud041Res.data.data.integral
+            //         }
+            //     } catch (e) {}
+            //     perfLogs['cloud041'].endTime = Date.now()
+            //     perfLogs['cloud041'].duration = perfLogs['cloud041'].endTime - perfLogs['cloud041'].startTime
+            // })(),
+            // (async () => {
+            //     const startTime = Date.now()
+            //     perfLogs['cloud050'] = { startTime }
+            //     try {
+            //         const cloud050Res = await cloudInstance.get('userBalance', {
+            //             params: {
+            //                 userid: '100050',
+            //                 token: '6c0f25c802b82d2a5c78f01fb627be2c'
+            //             }
+            //         })
+            //         if (cloud050Res.data.code === '1001') {
+            //             res.cloud050 = cloud050Res.data.data.integral
+            //         }
+            //     } catch (e) {}
+            //     perfLogs['cloud050'].endTime = Date.now()
+            //     perfLogs['cloud050'].duration = perfLogs['cloud050'].endTime - perfLogs['cloud050'].startTime
+            // })(),
             (async () => {
+                const startTime = Date.now()
+                perfLogs['usapanel'] = { startTime }
                 try {
                     const panelRes = await panelInstance.get('account', {
                         headers: {
@@ -882,9 +937,16 @@ export class TaskService implements OnModuleInit {
                     if (panelRes.data) {
                         res.usapanel = panelRes.data.balance
                     }
-                } catch (e) {}
+                } catch (e) {
+                    Logger.warn(`usapanel API调用失败: ${e.message}`, this.TAG)
+                }
+                perfLogs['usapanel'].endTime = Date.now()
+                perfLogs['usapanel'].duration = perfLogs['usapanel'].endTime - perfLogs['usapanel'].startTime
+                Logger.log(`API调用性能统计 - usapanel: ${perfLogs['usapanel'].duration}ms`, this.TAG)
             })(),
             (async () => {
+                const startTime = Date.now()
+                perfLogs['dashboard'] = { startTime }
                 try {
                     const dashboardRes = await dashboardInstance.get('GetBalance', {
                         params: {
@@ -894,9 +956,16 @@ export class TaskService implements OnModuleInit {
                     if (dashboardRes.data.Status === 'Success') {
                         res.dashboard = dashboardRes.data.Balance
                     }
-                } catch (e) {}
+                } catch (e) {
+                    Logger.warn(`dashboard API调用失败: ${e.message}`, this.TAG)
+                }
+                perfLogs['dashboard'].endTime = Date.now()
+                perfLogs['dashboard'].duration = perfLogs['dashboard'].endTime - perfLogs['dashboard'].startTime
+                Logger.log(`API调用性能统计 - dashboard: ${perfLogs['dashboard'].duration}ms`, this.TAG)
             })(),
             (async () => {
+                const startTime = Date.now()
+                perfLogs['smspva'] = { startTime }
                 try {
                     const smspvaRes = await smspvaInstance.get('balance', {
                         headers: {
@@ -906,9 +975,16 @@ export class TaskService implements OnModuleInit {
                     if (smspvaRes.data.statusCode === 200) {
                         res.smspva = smspvaRes.data.data.balance
                     }
-                } catch (e) {}
+                } catch (e) {
+                    Logger.warn(`smspva API调用失败: ${e.message}`, this.TAG)
+                }
+                perfLogs['smspva'].endTime = Date.now()
+                perfLogs['smspva'].duration = perfLogs['smspva'].endTime - perfLogs['smspva'].startTime
+                Logger.log(`API调用性能统计 - smspva: ${perfLogs['smspva'].duration}ms`, this.TAG)
             })(),
             (async () => {
+                const startTime = Date.now()
+                perfLogs['smspva02'] = { startTime }
                 try {
                     const smspva02Res = await smspvaInstance.get('balance', {
                         headers: {
@@ -918,9 +994,17 @@ export class TaskService implements OnModuleInit {
                     if (smspva02Res.data.statusCode === 200) {
                         res.smspva02 = smspva02Res.data.data.balance
                     }
-                } catch (e) {}
+                } catch (e) {
+                    Logger.warn(`smspva02 API调用失败: ${e.message}`, this.TAG)
+                }
+                perfLogs['smspva02'].endTime = Date.now()
+                perfLogs['smspva02'].duration = perfLogs['smspva02'].endTime - perfLogs['smspva02'].startTime
+                Logger.log(`API调用性能统计 - smspva02: ${perfLogs['smspva02'].duration}ms`, this.TAG)
             })()
         ])
+
+        Logger.log(`API调用性能统计total: ${JSON.stringify(perfLogs)}`, this.TAG)
+
         return res
     }