package service import ( "sportfitness/base/assembly/heartRate/model" "sportfitness/base/assembly/heartRate/repository/postgre" "sportfitness/base/assembly/heartRate/repository/redis" "github.com/sirupsen/logrus" ) type CalculationUnit struct { } func (CalculationUnit) calculate(src model.BandData) (result model.HrCourseDetail) { // TODO 实现计算 return } func (c CalculationUnit) loop() { data, err := redis.GetHubBandData() if err != nil { logrus.Errorf("接收心率数据失败:%s", err) return } if len(data) == 0 { return } postgre.PGHr{}.SaveHrBatch(data) var results []model.HrCourseDetail for _, one := range data { results = append(results, c.calculate(one)) } redis.HrStoreR4(results) } func (c CalculationUnit) Run() { go func() { for { c.loop() } }() }