package deviceAlarm import ( "fmt" "github.com/gogf/gf/database/gredis" "github.com/gogf/gf/encoding/gjson" ) const ( AlarmPrefix = "device:main:alarm:" dataExpires = 7200 ) type AlarmParams struct { DeviceCode string `json:"device_code"` FirstReportTime int64 `json:"first_report_time"` LastAlarmTime int64 `json:"last_alarm_time"` } type DevAlarmManager struct { redisClient *gredis.Redis } func NewDevAlarmManager(host string, port int) *DevAlarmManager { fmt.Printf("redis---------------%s:%d\n", host, port) red := gredis.New(&gredis.Config{ Host: host, Port: port, Db: 14, MaxActive: 100, }) helper := &DevAlarmManager{ redisClient: red, } return helper } func (a *DevAlarmManager) SetAlarm(params *AlarmParams) error { key := AlarmPrefix + params.DeviceCode res, err := a.redisClient.DoVar("SET", key, params) if err != nil { return err } fmt.Printf("params--------------%s\nres--------------%s\n", gjson.New(params).MustToJsonString(), res.String()) r, err := a.GetAlarm(params.DeviceCode) if err != nil { fmt.Printf("err------------%s\n", err.Error()) } if res == nil { fmt.Printf("rrrrrrrrrrrrr为空----------\n") return nil } fmt.Printf("r---------------------%s\n", gjson.New(r).MustToJsonString()) //_, err = a.redisClient.Do("EXPIRE", key, dataExpires) //if err != nil { // return err //} return nil } func (a *DevAlarmManager) GetAlarm(code string) (*AlarmParams, error) { key := AlarmPrefix + code alarm := new(AlarmParams) // get status from redis result, err := a.redisClient.DoVar("GET", key) if err != nil { return nil, err } err = result.Struct(alarm) if err != nil { return nil, err } return alarm, nil } func (a *DevAlarmManager) DeleteAlarm(code string) error { key := AlarmPrefix + code // get status from redis _, err := a.redisClient.Do("DEL", key) if err != nil { return err } return nil }