package redis import ( "fmt" "github.com/go-redis/redis/v8" "github.com/vmihailenco/msgpack" "sportfitness/base/assembly/heartRate/model" "time" ) const hubBandDataChannel = "bsw:sport_fitness:hub_tcp_server:heart_rate" func GetHubBandData() (data []model.BandData, err error) { var resultTemp []string bt := time.Now() for i := 0; i < 500; i++ { if time.Now().Sub(bt) > time.Second*5 { return } resultTemp, err = getClient().BLPop(ctx, time.Second, hubBandDataChannel).Result() if err != nil { if err == redis.Nil { err = nil continue } return } if len(resultTemp) != 2 { err = fmt.Errorf("GetHubBandData: 接收长度错误 %d", len(resultTemp)) return } one := model.BandData{} err = msgpack.Unmarshal([]byte(resultTemp[1]), &one) if err != nil { return } data = append(data, one) } return }