goodssub.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package model
  2. import (
  3. "active/constant"
  4. "fmt"
  5. "strconv"
  6. "strings"
  7. "git.jiaxianghudong.com/go/xlog"
  8. "git.jiaxianghudong.com/webs/pkg/rds"
  9. "github.com/go-redis/redis"
  10. )
  11. // SubGoodsConfig 定义计费点订阅
  12. func SubGoodsConfig() {
  13. r := rds.Register("redis8")
  14. _, err := r.Ping().Result()
  15. if err != nil {
  16. fmt.Println("配置订阅错误", err)
  17. }
  18. // 监听test频道
  19. pubSub := r.Subscribe(constant.SUBGOODTOPIC)
  20. // 订阅
  21. go func() {
  22. fmt.Println("配置订阅启动1")
  23. var receipt interface{}
  24. var err error
  25. for {
  26. receipt, err = pubSub.Receive()
  27. if err != nil {
  28. fmt.Println(err)
  29. }
  30. fmt.Println("配置订阅消息来了1")
  31. switch v := receipt.(type) {
  32. case *redis.Message: // 单个订阅subscribe
  33. fmt.Printf("%s: message: %s\n", v.Channel, v.Payload)
  34. switch v.Payload {
  35. case constant.GOODSKEY:
  36. // 清除内容
  37. GoodsCache.Delete(constant.GOODSKEY)
  38. fmt.Println(constant.GOODSKEY, ",内容订阅完毕")
  39. case fmt.Sprintf("jiaxiang_%s", constant.GOODSKEY):
  40. // 清除内容
  41. GoodsCache.Delete(fmt.Sprintf("jiaxiang_%s", constant.GOODSKEY))
  42. fmt.Println(fmt.Sprintf("jiaxiang_%s", constant.GOODSKEY), ",内容订阅完毕")
  43. case fmt.Sprintf("sichuan_%s", constant.GOODSKEY):
  44. // 清除内容
  45. GoodsCache.Delete(fmt.Sprintf("sichuan_%s", constant.GOODSKEY))
  46. fmt.Println(fmt.Sprintf("sichuan_%s", constant.GOODSKEY), ",内容订阅完毕")
  47. case fmt.Sprintf("ddz_%s", constant.GOODSKEY):
  48. // 清除内容
  49. GoodsCache.Delete(fmt.Sprintf("ddz_%s", constant.GOODSKEY))
  50. fmt.Println(fmt.Sprintf("ddz_%s", constant.GOODSKEY), ",内容订阅完毕")
  51. case constant.PAYBLACKLIST:
  52. // 清除内容
  53. PayBlackCache.Delete(constant.PAYBLACKLIST)
  54. fmt.Println(constant.PAYBLACKLIST, ",支付黑名单内容订阅完毕")
  55. default:
  56. data := strings.Split(v.Payload, ",")
  57. if len(data) == 2 {
  58. userid, _ := strconv.Atoi(data[0])
  59. level, _ := strconv.Atoi(data[1])
  60. PayBlackCacheNew.Set(userid, level)
  61. }
  62. xlog.Infof("%s 支付新黑名单内容订阅完毕 新增:%+v, 数据:%+v", constant.PAYBLACKLISTNEW, data, PayBlackCacheNew)
  63. break
  64. }
  65. case error:
  66. fmt.Println("你好")
  67. return
  68. default:
  69. fmt.Println("pong....")
  70. }
  71. }
  72. }()
  73. }