mirror of
https://gitee.com/samwaf/SamWaf.git
synced 2026-08-30 17:20:58 +08:00
98f8bd5ce2
#12 #IAUI3L
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
package wafqueue
|
|
|
|
import (
|
|
"SamWaf/common/zlog"
|
|
"SamWaf/global"
|
|
"SamWaf/innerbean"
|
|
"sync/atomic"
|
|
"time"
|
|
)
|
|
|
|
/*
|
|
*
|
|
处理Log队列信息
|
|
*/
|
|
func ProcessLogDequeEngine() {
|
|
for {
|
|
global.GWAF_MEASURE_PROCESS_DEQUEENGINE.WriteData(time.Now().UnixNano() / 1e6)
|
|
if global.GDATA_CURRENT_CHANGE {
|
|
//如果正在切换库 跳过
|
|
zlog.Debug("正在切换数据库等待中队列")
|
|
|
|
} else {
|
|
var webLogArray []innerbean.WebLog
|
|
for !global.GQEQUE_LOG_DB.Empty() {
|
|
atomic.AddUint64(&global.GWAF_RUNTIME_LOG_PROCESS, 1) // 原子增加计数器
|
|
weblogbean, ok := global.GQEQUE_LOG_DB.Dequeue()
|
|
if !ok {
|
|
continue
|
|
}
|
|
if weblogbean != nil {
|
|
// 进行类型断言将其转为具体的结构
|
|
if logValue, ok := weblogbean.(innerbean.WebLog); ok {
|
|
webLogArray = append(webLogArray, logValue)
|
|
} else {
|
|
//插入其他类型内容
|
|
global.GWAF_LOCAL_LOG_DB.Create(weblogbean)
|
|
}
|
|
}
|
|
}
|
|
if len(webLogArray) > 0 {
|
|
global.GWAF_LOCAL_LOG_DB.CreateInBatches(webLogArray, global.GDATA_BATCH_INSERT)
|
|
global.GNOTIFY_KAKFA_SERVICE.ProcessBatchLogs(webLogArray)
|
|
}
|
|
}
|
|
time.Sleep(100 * time.Millisecond)
|
|
global.GWAF_MEASURE_PROCESS_DEQUEENGINE.WriteData(time.Now().UnixNano() / 1e6)
|
|
}
|
|
}
|