From 8a0cb38a396e18a9f220bd5144212baca18f49d1 Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期一, 22 六月 2020 15:43:07 +0800 Subject: [PATCH] push space left by uni-push --- controllers/car.go | 51 ++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 42 insertions(+), 9 deletions(-) diff --git a/controllers/car.go b/controllers/car.go index 9dd4fd4..11ce19b 100644 --- a/controllers/car.go +++ b/controllers/car.go @@ -4,14 +4,55 @@ "car-service/extend/code" "car-service/models" "car-service/service" + "fmt" "github.com/astaxie/beego" "net/http" "sort" + "sync" "time" ) type CarController struct { beego.Controller +} + +//瀹炴椂璁$畻鍓╀綑杞︿綅鏁伴噺锛岃揪鍒版潯浠跺氨鎺ㄩ�� +func ComputeSpaceLeftRealTime() { + ticker := time.NewTicker(3 * time.Second) + prePushLeft := 0 + for { + select { + case <-ticker.C: + m := time.Now().Minute() + i := m % 10 + left := 80 + if i == 0 { + left = 10 + } + if m == 40 { + left = 5 + } + if left <=10 && left != prePushLeft { + go service.Push("鑲茶嫳鏅烘収鍋滆溅", fmt.Sprintf("褰撳墠鍓╀綑杞︿綅锛�%d涓�", left)) + } + updateSpaceLeft(left) + default: + time.Sleep(500 * time.Millisecond) + } + } +} + +var cacheSpaceLeft int +var cLock sync.RWMutex +func updateSpaceLeft(num int) { + cLock.Lock() + defer cLock.Unlock() + cacheSpaceLeft = num +} +func getSpaceLeft() int { + cLock.Lock() + defer cLock.Unlock() + return cacheSpaceLeft } // @Title 缁熻鍓╀綑杞︿綅 @@ -22,15 +63,7 @@ func (c *CarController) Statistic() { //sv := service.NewCarService() //sta := sv.Statistic() - m := time.Now().Minute() - i := m % 10 - left := 80 - if i == 0 { - left = 10 - } - if m == 40 { - left = 5 - } + left := getSpaceLeft() sta := models.CarStatistic{ Left: left, } -- Gitblit v1.8.0