feat:程序health监控
This commit is contained in:
父節點
eff594035a
當前提交
4b2beba584
37
src/health.ts
Normal file
37
src/health.ts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import {IJsonCourse} from "./types"
|
||||||
|
import {JsonCourseList} from "./poll"
|
||||||
|
import {findJsonCourse} from "./includes"
|
||||||
|
import {appConfig} from "./config"
|
||||||
|
|
||||||
|
let lastJsonCourseList: { bx: IJsonCourse[], xx: IJsonCourse[], rx: IJsonCourse[] }
|
||||||
|
let firstRunHealth = true
|
||||||
|
|
||||||
|
export async function health() {
|
||||||
|
let totalAcquireCount = 0
|
||||||
|
let totalExitCount = 0
|
||||||
|
if (firstRunHealth) {
|
||||||
|
console.log('[health]程序health监控启动完毕')
|
||||||
|
firstRunHealth = false
|
||||||
|
} else {
|
||||||
|
for (let channel of appConfig.channels) {
|
||||||
|
for (let lastCourse of lastJsonCourseList[channel]) {
|
||||||
|
let currentCourse = findJsonCourse({
|
||||||
|
kch: lastCourse.kch,
|
||||||
|
kxh: parseInt(lastCourse.kxh),
|
||||||
|
channel: channel
|
||||||
|
})
|
||||||
|
if (currentCourse == undefined) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if (parseInt(currentCourse.syrs) > parseInt(lastCourse.syrs)) {
|
||||||
|
totalExitCount += parseInt(currentCourse.syrs) - parseInt(lastCourse.syrs)
|
||||||
|
} else {
|
||||||
|
totalAcquireCount += parseInt(lastCourse.syrs) - parseInt(currentCourse.syrs)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log('[health]实时总退课人次:' + totalExitCount + ',总选课人次:' + totalAcquireCount)
|
||||||
|
}
|
||||||
|
lastJsonCourseList = JSON.parse(JSON.stringify(JsonCourseList))
|
||||||
|
setTimeout(health, 60 * 1000)
|
||||||
|
}
|
@ -2,6 +2,7 @@ import {JsonCourseList, poll} from "./poll"
|
|||||||
import {appConfig} from "./config"
|
import {appConfig} from "./config"
|
||||||
import {acquireProcess, monitProcess, replaceProcess} from "./actions"
|
import {acquireProcess, monitProcess, replaceProcess} from "./actions"
|
||||||
import {sleep} from "./includes"
|
import {sleep} from "./includes"
|
||||||
|
import {health} from "./health"
|
||||||
|
|
||||||
async function start() {
|
async function start() {
|
||||||
console.log('开始启动轮询进程')
|
console.log('开始启动轮询进程')
|
||||||
@ -30,6 +31,7 @@ async function start() {
|
|||||||
replaceProcess(appConfig.replace.list, appConfig.replace.exit)
|
replaceProcess(appConfig.replace.list, appConfig.replace.exit)
|
||||||
}
|
}
|
||||||
console.log('用户进程启动完毕')
|
console.log('用户进程启动完毕')
|
||||||
|
health()
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
@ -23,8 +23,8 @@ async function test() {
|
|||||||
let resp = await sduAxios.post('/jsxsd/xsxkkc/xsxkGgxxkxk?kcxx=&skls=&skxq=&skjc=&sfym=false&sfct=false&szjylb=&sfxx=true&skfs=&xqid=', reqBody)
|
let resp = await sduAxios.post('/jsxsd/xsxkkc/xsxkGgxxkxk?kcxx=&skls=&skxq=&skjc=&sfym=false&sfct=false&szjylb=&sfxx=true&skfs=&xqid=', reqBody)
|
||||||
fs.writeFileSync('arr.json', JSON.stringify(resp.data.aaData, null, 2))
|
fs.writeFileSync('arr.json', JSON.stringify(resp.data.aaData, null, 2))
|
||||||
let courseList: IJsonCourse[] = resp.data.aaData
|
let courseList: IJsonCourse[] = resp.data.aaData
|
||||||
courseList = courseList.filter(single => (single.kcmc.includes('稷下创新') || single.kcmc.includes('齐鲁创业'))
|
courseList = courseList.filter(single => single.kcmc.includes('稷下创新')
|
||||||
&& single.xqmc == '软件园校区')
|
&& single.xf >= 2)
|
||||||
for (let course of courseList) {
|
for (let course of courseList) {
|
||||||
console.log(course.kcmc + ' ' + course.kch + ' ' + course.kxh + ' ' + course.syrs + ' ' + course.xf)
|
console.log(course.kcmc + ' ' + course.kch + ' ' + course.kxh + ' ' + course.syrs + ' ' + course.xf)
|
||||||
}
|
}
|
||||||
|
載入中…
x
新增問題並參考
Block a user