1
0

strategy.go 910 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package cron
  2. import (
  3. "log"
  4. "time"
  5. "github.com/710leo/urlooker/dataobj"
  6. "github.com/710leo/urlooker/modules/alarm/backend"
  7. "github.com/710leo/urlooker/modules/alarm/cache"
  8. "github.com/710leo/urlooker/modules/alarm/g"
  9. )
  10. func SyncStrategies() {
  11. t1 := time.NewTicker(time.Duration(g.Config.Web.Interval) * time.Second)
  12. for {
  13. syncStrategies()
  14. <-t1.C
  15. }
  16. }
  17. func syncStrategies() {
  18. var strategiesResponse dataobj.StrategyResponse
  19. err := backend.CallRpc("Web.GetStrategies", "", &strategiesResponse)
  20. if err != nil {
  21. log.Println("[ERROR] Web.GetStrategies:", strategiesResponse.Data, strategiesResponse.Message, err)
  22. return
  23. }
  24. rebuildStrategyMap(strategiesResponse.Data)
  25. }
  26. func rebuildStrategyMap(strategiesResponse []*dataobj.Strategy) {
  27. m := make(map[int64]dataobj.Strategy)
  28. for _, strategy := range strategiesResponse {
  29. m[strategy.Id] = *strategy
  30. }
  31. cache.StrategyMap.ReInit(m)
  32. }