conv_pvp_key.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package jobs
  2. import (
  3. "fmt"
  4. "gadmin/config"
  5. "gadmin/utility"
  6. "sync"
  7. "time"
  8. "github.com/sirupsen/logrus"
  9. )
  10. var (
  11. ConvPvpKey = new(jConvPvpKey)
  12. )
  13. type jConvPvpKey struct {
  14. sync.RWMutex
  15. }
  16. func (j *jConvPvpKey) Run() {
  17. logrus.Info("jConvPvpKey Run.....")
  18. //j.handle("pvpplayers:9") // 版本已经更新过了,注释掉,避免再次执行。
  19. //j.handle("pvpplayers:10")
  20. }
  21. // handle
  22. func (j *jConvPvpKey) handle(key string) {
  23. j.RLock()
  24. defer j.RUnlock()
  25. var (
  26. err error
  27. cursor uint64 = 0
  28. match = ""
  29. count int64 = 20000
  30. )
  31. keys, cursor, err := config.GameRedis.HScan(key, cursor, match, count).Result()
  32. if len(keys) == 0 {
  33. logrus.Info(key, "不存在已跳过..")
  34. return
  35. }
  36. if err != nil {
  37. logrus.Info("HScan err:", key, err)
  38. return
  39. }
  40. for i := 0; i < len(keys); i++ {
  41. if utility.IsEven(i) {
  42. logrus.Warningf("key:%+v, vlue:%+v \n\n", keys[i], keys[i+1])
  43. config.GameRedis.Set(fmt.Sprintf("pvpplayer:%v", keys[i]), keys[i+1], 86400*14*time.Second)
  44. }
  45. }
  46. logrus.Infof("jConvPvpKey ok!!")
  47. }