dotconfig.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package handler
  2. import (
  3. "encoding/json"
  4. "os"
  5. "time"
  6. "bet24.com/log"
  7. pb "bet24.com/servers/micros/dotservice/proto"
  8. platformconfig "bet24.com/servers/micros/platformconfig/proto"
  9. )
  10. const config_key = "dot_config"
  11. func (this *dotMgr) loadConfig() {
  12. this.loadRedisConfig()
  13. go time.AfterFunc(5*time.Minute, this.loadConfig)
  14. }
  15. func (this *dotMgr) loadRedisConfig() {
  16. if data := platformconfig.GetConfig(config_key); data != "" {
  17. err := json.Unmarshal([]byte(data), &this.config_list)
  18. if err == nil {
  19. return
  20. }
  21. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  22. return
  23. }
  24. if data, err := os.ReadFile("serviceconf/dotConfig.json"); err == nil {
  25. err = json.Unmarshal([]byte(data), &this.config_list)
  26. if err == nil {
  27. platformconfig.SetConfig(config_key, string(data))
  28. return
  29. }
  30. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  31. } else {
  32. log.Release("read config failed serviceconf/dotConfig.json %v", err)
  33. }
  34. return
  35. }
  36. // 获取标签配置列表
  37. func (this *dotMgr) getConfigList() []*pb.DotConfig {
  38. return this.config_list
  39. }
  40. // 获取标签配置列表(任务除外)
  41. func (this *dotMgr) getConfigListNotTask() []*pb.DotConfig {
  42. var ret []*pb.DotConfig
  43. for _, v := range this.config_list {
  44. if v.Scene == pb.Scene_Task {
  45. continue
  46. }
  47. ret = append(ret, v)
  48. }
  49. return ret
  50. }