perf:health logging

This commit is contained in:
juzeon 2021-09-13 18:34:24 +08:00
父節點 4b2beba584
當前提交 c827b9dab9

查看文件

@ -2,6 +2,8 @@ import {IJsonCourse} from "./types"
import {JsonCourseList} from "./poll"
import {findJsonCourse} from "./includes"
import {appConfig} from "./config"
import {scalarOptions} from "yaml"
import Str = scalarOptions.Str
let lastJsonCourseList: { bx: IJsonCourse[], xx: IJsonCourse[], rx: IJsonCourse[] }
let firstRunHealth = true
@ -9,6 +11,8 @@ let firstRunHealth = true
export async function health() {
let totalAcquireCount = 0
let totalExitCount = 0
let acquireNames: string[] = []
let exitNames: string[] = []
if (firstRunHealth) {
console.log('[health]程序health监控启动完毕')
firstRunHealth = false
@ -25,13 +29,31 @@ export async function health() {
}
if (parseInt(currentCourse.syrs) > parseInt(lastCourse.syrs)) {
totalExitCount += parseInt(currentCourse.syrs) - parseInt(lastCourse.syrs)
if (!exitNames.includes(currentCourse.kcmc)) {
exitNames.push(currentCourse.kcmc)
}
} else {
totalAcquireCount += parseInt(lastCourse.syrs) - parseInt(currentCourse.syrs)
if (!acquireNames.includes(currentCourse.kcmc)) {
acquireNames.push(currentCourse.kcmc)
}
}
}
}
console.log('[health]实时总退课人次:' + totalExitCount + ',总选课人次:' + totalAcquireCount)
console.log('[health]实时总退课人次:' + totalExitCount + '(' + shuffle(exitNames).slice(0, 3).join(',') + '等),总选课人次:'
+ totalAcquireCount + '(' + shuffle(acquireNames).slice(0, 3).join(',') + '等)')
}
lastJsonCourseList = JSON.parse(JSON.stringify(JsonCourseList))
setTimeout(health, 60 * 1000)
}
function shuffle(array: any[]) {
let currentIndex = array.length, randomIndex
while (currentIndex != 0) {
randomIndex = Math.floor(Math.random() * currentIndex)
currentIndex--;
[array[currentIndex], array[randomIndex]] = [
array[randomIndex], array[currentIndex]]
}
return array
}