mirror of
https://gitee.com/samwaf/SamWaf.git
synced 2026-08-31 01:41:39 +08:00
42 lines
921 B
Go
42 lines
921 B
Go
package wafqueue
|
|
|
|
import (
|
|
"SamWaf/common/zlog"
|
|
"SamWaf/global"
|
|
"SamWaf/innerbean"
|
|
"time"
|
|
)
|
|
|
|
/*
|
|
*
|
|
处理Stat队列信息
|
|
*/
|
|
func ProcessStatDequeEngine() {
|
|
for {
|
|
select {
|
|
case <-global.GWAF_QUEUE_SHUTDOWN_SIGNAL:
|
|
zlog.Info("统计队列处理协程收到关闭信号,正在退出...")
|
|
return
|
|
default:
|
|
for !global.GQEQUE_STATS_DB.Empty() {
|
|
dequeue, ok := global.GQEQUE_STATS_DB.Dequeue()
|
|
if ok {
|
|
global.GWAF_LOCAL_STATS_DB.Create(dequeue)
|
|
}
|
|
}
|
|
for !global.GQEQUE_STATS_UPDATE_DB.Empty() {
|
|
bean, ok := global.GQEQUE_STATS_UPDATE_DB.Dequeue()
|
|
if ok {
|
|
// 进行类型断言将其转为具体的结构
|
|
if UpdateValue, ok := bean.(innerbean.UpdateModel); ok {
|
|
global.GWAF_LOCAL_STATS_DB.Model(UpdateValue.Model).Where(UpdateValue.Query,
|
|
UpdateValue.Args...).Updates(UpdateValue.Update)
|
|
}
|
|
}
|
|
|
|
}
|
|
time.Sleep(100 * time.Millisecond)
|
|
}
|
|
}
|
|
}
|