-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhandler.js
82 lines (64 loc) · 2.72 KB
/
handler.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
const logger = require("./log")
const db = require("./orm")
const serviceDB = require("./service.orm")
const dataRetirementController = require("./analyze/data-retirement/data.retirement.controller")
const summonerController = require("./analyze/summonerId/summonerId.controller")
const puuidController = require("./analyze/puuId/puuId.controller")
const matchIdController = require("./analyze/matchId/matchId.controller")
const { sleep } = require("./timer/timer")
const { getTodayMatchDataCount } = require("./analyze/matchId/matchId.service")
const { exec } = require("child_process")
require("dotenv").config()
async function handler() {
try {
let matchIdCnt = 0
let runningCnt = 1
await db.connect()
await serviceDB.connectService()
console.log("DB 연결 작업 완료")
const response = await summonerController.testRiotRequest()
if (response) {
while (matchIdCnt < 30000) {
const start = performance.now()
await collectData()
console.log("데이터 수집 작업 완료")
sleep(3)
await deleteData()
console.log("불순 데이터 삭제 작업 완료")
const { today_matchid_count } = await getTodayMatchDataCount()
matchIdCnt = today_matchid_count
const end = performance.now()
const runningTime = end - start
const ConversionRunningTime = String(runningTime / (1000 * 60) / 60).split(".")[0]
const ConversionRunningMinute = (runningTime / (1000 * 60)) % 60
logger.info(
`===${runningCnt} 번째 작업 ${ConversionRunningTime}시간 ${ConversionRunningMinute}분 소요 수집한 matchId: ${matchIdCnt}===`
)
runningCnt++
}
const now = new Date()
logger.info(
`데이터 수집 프로세스 종료! 수집한 matchId 개수:${matchIdCnt}, 종료 시간:${now}`
)
exec("pm2 stop handler.js")
} else {
throw new Error("API expiration")
}
} catch (error) {
logger.error(error, { message: "-from handler" })
}
}
handler()
async function deleteData() {
// Outdated matchId 처리
await dataRetirementController.deleteOutdatedData("matchId")
// Wrong data 처리
await dataRetirementController.deleteWrongData("matchId")
await dataRetirementController.deleteWrongData("puuId")
await dataRetirementController.deleteWrongData("summonerId")
}
async function collectData() {
await summonerController.summonerId()
await puuidController.puuId()
await matchIdController.matchId()
}