Browse Source

update 使用异步sync.map

pull/2/head
lucas 6 months ago
parent
commit
de9a85cfa0
  1. 15
      adaptors/安心云最新设备数据toES.go

15
adaptors/安心云最新设备数据toES.go

@ -7,6 +7,7 @@ import (
"goInOut/dbHelper"
"goInOut/models"
"log"
"sync"
"time"
)
@ -58,19 +59,23 @@ func (the Adaptor_AXY_LastRAW) raw2es(iotaData models.IotaData) *models.EsRaw {
}
var deviceInfoMap = map[string]models.DeviceInfo{}
var deviceInfoMap2 = sync.Map{}
func (the Adaptor_AXY_LastRAW) GetDeviceInfo(deviceId string) models.DeviceInfo {
if v, ok := deviceInfoMap[deviceId]; ok {
durationMin := time.Now().Sub(v.RefreshTime).Minutes()
if durationMin < 5 {
return v
if vObj, ok := deviceInfoMap2.Load(deviceId); ok {
if v, ok := vObj.(models.DeviceInfo); ok {
durationMin := time.Now().Sub(v.RefreshTime).Minutes()
if durationMin < 5 {
return v
}
}
}
v, err := the.GetDeviceInfoFromRedis(deviceId)
if err != nil {
log.Printf("设备%s 无法查询到对应信息", deviceId)
}
deviceInfoMap[deviceId] = v
//deviceInfoMap[deviceId] = v
deviceInfoMap2.Store(deviceId, v)
return v
}

Loading…
Cancel
Save