【fix】设备数据处理并发控制修复

This commit is contained in:
PandaX
2023-10-09 11:15:23 +08:00
parent fa6797141a
commit eb83923849

View File

@@ -34,9 +34,15 @@ func (s *HookService) handleOne(msg *netbase.DeviceEventInfo) {
if s.Ch != nil { // 用于并发限制
s.Ch <- struct{}{}
}
// 用于做优雅关闭, 主要作用是,程序关闭,将队列中的消息处理完成后在关闭,
s.Wg.Add(1)
go func() {
defer s.Wg.Done()
defer func() {
s.Wg.Done()
if s.Ch != nil { // 用于并发限制
<-s.Ch
}
}()
switch msg.Type {
case message.RowMes, message.AttributesMes, message.TelemetryMes, message.RpcRequestMes:
msgVals := make(map[string]interface{})