Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.75 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "time"
  6. "flag"
  7. "strings"
  8. "encoding/json"
  9.  
  10. "github.com/go-redis/redis"
  11. _ "github.com/go-sql-driver/mysql"
  12. "database/sql"
  13. )
  14.  
  15. var redisClient *redis.Client
  16.  
  17. var (
  18. mysqlHost = flag.String("mysqlHost", "localhost", "Mysql Host")
  19. mysqlPort = flag.String("mysqlPort", "3306", "Mysql Port")
  20. mysqlDB = flag.String("mysqlDB", "headball", "Mysql Database")
  21. mysqlUsername = flag.String("mysqlUsername", "root", "Mysql UserName")
  22. mysqlPassword = flag.String("mysqlPassword", "root", "Mysql User Password")
  23. )
  24.  
  25. //
  26. type Users struct {
  27. UserName string `json:"username"`
  28. Email string `json:"email"`
  29. Password string `json:"password"`
  30. Country string `json:"country"`
  31. JoinTime string `json:"jointime"`
  32. Status string `json:"status"`
  33. Admin string `json:"admin"`
  34. LastLogin int `json:"lastlogin"`
  35. LoginDaily string `json:"logindaily"`
  36. Lang string `json:"lang"`
  37. IsBot string `json:"isbot"`
  38. FbUserId int `json:"fbuserid"`
  39. SelectUsername string `json:"selectusername"`
  40. JerseyColor int `json:"jerseycolor"`
  41. SessionId int `json:"sessionid"`
  42. }
  43.  
  44. func main(){
  45.  
  46. flag.Parse()
  47.  
  48. redisClient := redis.NewClient(&redis.Options{
  49. Addr: "localhost:6379",
  50. Password: "", // no password set
  51. DB: 0, // use default DB
  52. })
  53.  
  54. pong, err := redisClient.Ping().Result()
  55. if err != nil {
  56. fmt.Println(pong)
  57. fmt.Println("Redis Not Connected")
  58. return
  59. }
  60.  
  61. db, errDb := sql.Open("mysql", *mysqlUsername + ":" + *mysqlPassword + "@tcp(" + *mysqlHost + ":" + *mysqlPort + ")/" + *mysqlDB)
  62. if errDb != nil {
  63. fmt.Println("Mysql Not Connected")
  64. }
  65. defer db.Close()
  66.  
  67. // Sonsuz Döngü
  68. for {
  69. for i := 0; i < 1000; i++ {
  70.  
  71. queue := redisClient.SPop("queue:users")
  72. if queue != nil {
  73. userData := redisClient.HGet("users", queue.Val())
  74. if userData.Val() == "" {
  75. continue
  76. }
  77.  
  78. dec := json.NewDecoder(strings.NewReader(userData.Val()))
  79.  
  80. var users Users
  81. err := dec.Decode(&users);
  82. if err != nil {
  83. fmt.Println(err)
  84. continue
  85. }
  86.  
  87. update, errDb := db.Prepare("update users set "+
  88. "username=? ,"+
  89. "email=? ,"+
  90. "password=? ,"+
  91. "country=? ,"+
  92. "jointime=? ,"+
  93. "status=? ,"+
  94. "admin=? ,"+
  95. "lastlogin=? ,"+
  96. "logindaily=? ,"+
  97. "lang=? ,"+
  98. "isbot=? ,"+
  99. "fbuserid=? ,"+
  100. "selectusername=? ,"+
  101. "jerseycolor=? ,"+
  102. "sessionid=? "+
  103. "where username=?")
  104. if errDb != nil {
  105. fmt.Println(errDb)
  106. fmt.Println("Mysql Update Error !!")
  107. continue
  108. }
  109. update.Exec(
  110. users.UserName,
  111. users.Email,
  112. users.Password,
  113. users.Country,
  114. users.JoinTime,
  115. users.Status,
  116. users.Admin,
  117. users.LastLogin,
  118. users.LoginDaily,
  119. users.Lang,
  120. users.IsBot,
  121. users.FbUserId,
  122. users.SelectUsername,
  123. users.JerseyColor,
  124. users.SessionId,
  125. queue.Val())
  126. }
  127. }
  128.  
  129. // 5sn dinlenme
  130. time.Sleep(5 * time.Second)
  131. }
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement