-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
103 lines (90 loc) · 2.69 KB
/
app.js
File metadata and controls
103 lines (90 loc) · 2.69 KB
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
'use strict'
const mongoose = require('mongoose')
const { Client } = require('./models')
var mongoCli
async function connect() {
mongoCli = await mongoose.connect('mongodb://localhost/pm2test')
}
function start() {
return new Promise((resolve, reject) => {
setTimeout(async () => {
try {
console.log('check NODE_ENV', process.env.NODE_ENV)
console.log('check', mongoCli.connection.readyState)
let result = await Client.collection.findOneAndUpdate(
{ count: 0 },
{ $set: { count: 1 } }
)
console.log(result)
console.log('SUCCESS')
resolve()
} catch (err) {
console.log('FAIL')
reject(err)
}
}, 500)
})
}
async function run() {
try {
await connect()
while (true) {
await start()
}
await mongoose.connection.close()
} catch (err) {
console.error(`---------- CHECK err ----------`, err)
await mongoose.connection.close()
}
}
// graceful stop
process.on('SIGINT', async () => {
console.log(`---------- CHECK SIGINT ----------`)
await mongoose.connection.close()
process.exit()
})
process.on('uncaughtException', function(e) {
try {
run()
} catch (err) {
console.log('check err', err)
throw err
}
})
try {
run()
} catch (err) {
console.log('check err', err)
throw err
}
// 카운트 계산
await Promise.all(_.flatMap(data, obj => {
return new Promise((resolve, reject) => {
if (obj.statusCode === '2000') {
const messageType = obj.type.toLowerCase()
let key = `countForCharge.${messageType}`
// ata, cta의 경우는 그냥 카운트를 올려주고 나머지는 국가코드별로 구분해서 올려준다.
if (messageType === 'ata' || messageType === 'cta') {
countForLog[messageType] = messageType in countForLog ? countForLog[messageType]++ : 1
} else {
console.log('IN--1')
console.log(obj.to)
console.log(obj.country)
console.log(typeof obj.country)
const country = obj.country || '82'
console.log(countForLog)
console.log(`---------- CHECK country in countForLog[messageType] ----------`, country in countForLog[messageType])
countForLog[messageType][country] = country in countForLog[messageType]
? countForLog[messageType][country]++ : 1
console.log(countForLog)
key += `.${country}`
}
updateData['$inc'][key] = key in updateData['$inc'] ? updateData['$inc'][key]++ : 1
updateData['$inc']['count.registeredSuccess']++
logFlag = true
} else {
updateData['$inc']['count.registeredFailed']++
}
resolve()
})
}))