From 948bfeb2e8abd2ec80e282bd1b17975b89d3eb74 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期四, 23 十一月 2023 11:27:52 +0800 Subject: [PATCH] 所有的缓存都考虑上deviceID --- service/cache_store.go | 94 ++++++++++++++++++++++++----------------------- 1 files changed, 48 insertions(+), 46 deletions(-) diff --git a/service/cache_store.go b/service/cache_store.go index 2ac4594..e8b9832 100644 --- a/service/cache_store.go +++ b/service/cache_store.go @@ -48,42 +48,48 @@ } const ( - PlcCacheKey = "plc:%v:%v" //plc:channel:key - CurrentTaskCacheKey = "current_task:%v" //current_task:channel - CurrentProgressCacheKey = "current_progress:%v" //current_progress:channel - PlcCacheKeyUpdateTime = "finish_number_update_time:%v" //finish_number_update_time:channel - TaskStartTimeCache = "task_start_time:%v" //task_start_time:channel - TaskEndTimeCache = "task_end_time:%v" //task_end_time:channel + PlcCacheKey = "plc:%v:%v:%v" //plc:deviceID:channel:key 缂撳瓨鍔犲伐鏁版垨鐩爣鏁� + CurrentTaskCacheKey = "current_task:%v:%v" //current_task:deviceID:channel 缂撳瓨褰撳墠浠诲姟id + CurrentProgressCacheKey = "current_progress:%v:%v" //current_progress:deviceId:channel + PlcCacheKeyUpdateTime = "finish_number_update_time:%v:%v" //finish_number_update_time:deviceID:channel + TaskStartTimeCache = "task_start_time:%v:%v" //task_start_time:deviceID:channel + TaskEndTimeCache = "task_end_time:%v:%v" //task_end_time:deviceID:channel ) -func PlcCacheGet(channel int32, key string) (interface{}, bool) { - return defaultCacheStore.Get(fmt.Sprintf(PlcCacheKey, channel, key)) +func PlcCacheGet(deviceId string, channel int32, key string) (interface{}, bool) { + return defaultCacheStore.Get(fmt.Sprintf(PlcCacheKey, deviceId, channel, key)) } -func PlcCacheSet(channel int32, key string, value interface{}) { +func PlcCacheSet(deviceId string, channel int32, key string, value interface{}) { if key == constvar.PlcCacheKeyFinishNumber { - oldFinishNumber, exists := PlcCacheGet(channel, key) + oldFinishNumber, exists := PlcCacheGet(deviceId, channel, key) if !exists || cast.ToInt(oldFinishNumber) != cast.ToInt(value) { //finishNumber鏈変簡鍙樺寲锛岃缃洿鏂版椂闂寸紦瀛� - FinishUpdateTimeSet(channel, time.Now().Unix()) + FinishUpdateTimeSet(deviceId, channel, time.Now().Unix()) } } - defaultCacheStore.Add(fmt.Sprintf(PlcCacheKey, channel, key), value) + defaultCacheStore.Add(fmt.Sprintf(PlcCacheKey, deviceId, channel, key), value) } -func FinishUpdateTimeGet(channel int32) interface{} { - val, ok := defaultCacheStore.Get(fmt.Sprintf(PlcCacheKeyUpdateTime, channel)) +// FinishUpdateTimeGet 鐢ㄤ簬鍒ゆ柇plc鐘舵�侊紝瓒呰繃澶氬皯鏃堕棿鏈洿鏂拌涓哄緟鏈� +func FinishUpdateTimeGet(deviceId string, channel int32) interface{} { + val, ok := defaultCacheStore.Get(fmt.Sprintf(PlcCacheKeyUpdateTime, deviceId, channel)) if ok { return val } return 0 } -func TaskStartTimeSet(channel int32, ts int64) { - defaultCacheStore.Add(fmt.Sprintf(TaskStartTimeCache, channel), ts) +func FinishUpdateTimeSet(deviceId string, channel int32, value interface{}) { + defaultCacheStore.Add(fmt.Sprintf(PlcCacheKeyUpdateTime, deviceId, channel), value) } -func TaskStartTimeGet(channel int32) int64 { - if v, ok := defaultCacheStore.Get(fmt.Sprintf(TaskStartTimeCache, channel)); ok { +func TaskStartTimeSet(deviceID string, channel int32, ts int64) { + defaultCacheStore.Add(fmt.Sprintf(TaskStartTimeCache, deviceID, channel), ts) +} + +// TaskStartTimeGet 鐢ㄤ簬鍓嶇灞曠ず宸ュ簭杩愯鏃堕棿 +func TaskStartTimeGet(deviceId string, channel int32) int64 { + if v, ok := defaultCacheStore.Get(fmt.Sprintf(TaskStartTimeCache, deviceId, channel)); ok { return v.(int64) } procedure, err := model.NewProceduresSearch(nil).SetDeviceId(conf.Conf.CurrentDeviceID).SetStatus(model.ProcedureStatusProcessing).SetChannels([]int32{channel}).First() //杩涜涓换鍔� @@ -91,69 +97,65 @@ procedure, err = model.NewProceduresSearch(nil).SetDeviceId(conf.Conf.CurrentDeviceID). SetStatus(model.ProcedureStatusFinished).SetChannels([]int32{channel}).SetOrder("real_end_time desc").First() //涓婁竴涓粨鏉熺殑浠诲姟 if err == gorm.ErrRecordNotFound { //杩涜涓拰缁撴潫鐨勯兘娌℃湁锛屽紑濮嬫椂闂村拰缁撴潫鏃堕棿閮借缃�0 - TaskStartTimeSet(channel, int64(0)) - TaskEndTimeSet(channel, int64(0)) + TaskStartTimeSet(deviceId, channel, int64(0)) + TaskEndTimeSet(deviceId, channel, int64(0)) return 0 } else { - TaskStartTimeSet(channel, procedure.RealStartTime) - TaskStartTimeSet(channel, procedure.RealEndTime) + TaskStartTimeSet(deviceId, channel, procedure.RealStartTime) + TaskEndTimeSet(deviceId, channel, procedure.RealEndTime) return 0 } } else { - TaskStartTimeSet(channel, procedure.RealStartTime) - TaskStartTimeSet(channel, int64(0)) + TaskStartTimeSet(deviceId, channel, procedure.RealStartTime) + TaskEndTimeSet(deviceId, channel, int64(0)) return procedure.RealStartTime } } -func TaskEndTimeSet(channel int32, ts int64) { - defaultCacheStore.Add(fmt.Sprintf(TaskEndTimeCache, channel), ts) +func TaskEndTimeSet(deviceID string, channel int32, ts int64) { + defaultCacheStore.Add(fmt.Sprintf(TaskEndTimeCache, deviceID, channel), ts) } -func TaskEndTimeGet(channel int32) int64 { - if v, ok := defaultCacheStore.Get(fmt.Sprintf(TaskEndTimeCache, channel)); ok { +func TaskEndTimeGet(deviceID string, channel int32) int64 { + if v, ok := defaultCacheStore.Get(fmt.Sprintf(TaskEndTimeCache, deviceID, channel)); ok { return v.(int64) } return 0 } -func FinishUpdateTimeSet(channel int32, value interface{}) { - defaultCacheStore.Add(fmt.Sprintf(PlcCacheKeyUpdateTime, channel), value) +func TaskFlagSet(deviceID string, channel int32, taskId int) { + defaultCacheStore.Add(fmt.Sprintf(CurrentTaskCacheKey, deviceID, channel), taskId) } -func TaskFlagSet(channel int32, taskId int) { - defaultCacheStore.Add(fmt.Sprintf(CurrentTaskCacheKey, channel), taskId) +func TaskFlagUnset(deviceID string, channel int32) { + defaultCacheStore.Add(fmt.Sprintf(CurrentTaskCacheKey, deviceID, channel), 0) } -func TaskFlagUnset(channel int32) { - defaultCacheStore.Add(fmt.Sprintf(CurrentTaskCacheKey, channel), 0) -} - -func TaskFlagGet(channel int32) bool { - if v, ok := defaultCacheStore.Get(fmt.Sprintf(CurrentTaskCacheKey, channel)); ok { +func TaskFlagGet(deviceID string, channel int32) bool { + if v, ok := defaultCacheStore.Get(fmt.Sprintf(CurrentTaskCacheKey, deviceID, channel)); ok { return v.(int) > 0 } procedure, err := model.NewProceduresSearch(nil).SetDeviceId(conf.Conf.CurrentDeviceID).SetStatus(model.ProcedureStatusProcessing).SetChannels([]int32{channel}).First() if err == gorm.ErrRecordNotFound { - defaultCacheStore.Add(fmt.Sprintf(CurrentTaskCacheKey, channel), 0) + defaultCacheStore.Add(fmt.Sprintf(CurrentTaskCacheKey, deviceID, channel), 0) return false } else { - defaultCacheStore.Add(fmt.Sprintf(CurrentTaskCacheKey, channel), int(procedure.ID)) + defaultCacheStore.Add(fmt.Sprintf(CurrentTaskCacheKey, deviceID, channel), int(procedure.ID)) return true } } -func ProgressCacheGet(channel int32) (*model.ProductionProgress, bool) { - if v, ok := defaultCacheStore.Get(fmt.Sprintf(CurrentProgressCacheKey, channel)); ok { +func ProgressCacheGet(deviceID string, channel int32) (*model.ProductionProgress, bool) { + if v, ok := defaultCacheStore.Get(fmt.Sprintf(CurrentProgressCacheKey, deviceID, channel)); ok { return v.(*model.ProductionProgress), ok } return nil, false } -func ProgressCacheSet(channel int32, value *model.ProductionProgress) { - defaultCacheStore.Add(fmt.Sprintf(CurrentProgressCacheKey, channel), value) +func ProgressCacheSet(deviceID string, channel int32, value *model.ProductionProgress) { + defaultCacheStore.Add(fmt.Sprintf(CurrentProgressCacheKey, deviceID, channel), value) } -func ProgressCacheUnset(channel int32) { - defaultCacheStore.Remove(fmt.Sprintf(CurrentProgressCacheKey, channel)) +func ProgressCacheUnset(deviceID string, channel int32) { + defaultCacheStore.Remove(fmt.Sprintf(CurrentProgressCacheKey, deviceID, channel)) } -- Gitblit v1.8.0