12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package util
- import (
- "fmt"
- "github.com/go-redis/redis"
- "iot_manager_service/config"
- "strconv"
- "time"
- )
- var Redis *redis.Client
- func InitRedis() error {
- cfg := config.Instance()
- addr := cfg.Redis.Host
- Redis = redis.NewClient(&redis.Options{
- Addr: addr,
- DialTimeout: 10 * time.Second,
- ReadTimeout: 30 * time.Second,
- WriteTimeout: 30 * time.Second,
- PoolSize: 10,
- PoolTimeout: 30 * time.Second,
- Password: cfg.Redis.Password,
- })
- _, err := Redis.Ping().Result()
- if err != nil {
- return err
- }
- return nil
- }
- const (
- DeviceStateKey = "dev_stat_"
- ONLINE = "online"
- TLast = "tlast"
- )
- func GetDeviceState(id string) (retTime time.Time, retState string) {
- defer func() {
- if err1 := recover(); err1 != nil {
- fmt.Println("GetDeviceState err = ", err1)
- }
- }()
- retTime = time.Time{}
- retState = "2"
-
-
- list, err := Redis.HMGet(DeviceStateKey+id, TLast, ONLINE).Result()
- if err == nil && list[0] != nil || list[1] != nil {
- t, err1 := MlParseTime(list[0].(string))
- s, err0 := strconv.Atoi(list[1].(string))
- if err0 == nil && err1 == nil {
- if s == 0 {
- retState = "1"
- }
- retTime = t
- }
- }
- return
- }
|