Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "time"
- "flag"
- "strings"
- "encoding/json"
- "github.com/go-redis/redis"
- _ "github.com/go-sql-driver/mysql"
- "database/sql"
- )
- var redisClient *redis.Client
- var (
- mysqlHost = flag.String("mysqlHost", "localhost", "Mysql Host")
- mysqlPort = flag.String("mysqlPort", "3306", "Mysql Port")
- mysqlDB = flag.String("mysqlDB", "headball", "Mysql Database")
- mysqlUsername = flag.String("mysqlUsername", "root", "Mysql UserName")
- mysqlPassword = flag.String("mysqlPassword", "root", "Mysql User Password")
- )
- //
- type Users struct {
- UserName string `json:"username"`
- Email string `json:"email"`
- Password string `json:"password"`
- Country string `json:"country"`
- JoinTime string `json:"jointime"`
- Status string `json:"status"`
- Admin string `json:"admin"`
- LastLogin int `json:"lastlogin"`
- LoginDaily string `json:"logindaily"`
- Lang string `json:"lang"`
- IsBot string `json:"isbot"`
- FbUserId int `json:"fbuserid"`
- SelectUsername string `json:"selectusername"`
- JerseyColor int `json:"jerseycolor"`
- SessionId int `json:"sessionid"`
- }
- func main(){
- flag.Parse()
- redisClient := redis.NewClient(&redis.Options{
- Addr: "localhost:6379",
- Password: "", // no password set
- DB: 0, // use default DB
- })
- pong, err := redisClient.Ping().Result()
- if err != nil {
- fmt.Println(pong)
- fmt.Println("Redis Not Connected")
- return
- }
- db, errDb := sql.Open("mysql", *mysqlUsername + ":" + *mysqlPassword + "@tcp(" + *mysqlHost + ":" + *mysqlPort + ")/" + *mysqlDB)
- if errDb != nil {
- fmt.Println("Mysql Not Connected")
- }
- defer db.Close()
- // Sonsuz Döngü
- for {
- for i := 0; i < 1000; i++ {
- queue := redisClient.SPop("queue:users")
- if queue != nil {
- userData := redisClient.HGet("users", queue.Val())
- if userData.Val() == "" {
- continue
- }
- dec := json.NewDecoder(strings.NewReader(userData.Val()))
- var users Users
- err := dec.Decode(&users);
- if err != nil {
- fmt.Println(err)
- continue
- }
- update, errDb := db.Prepare("update users set "+
- "username=? ,"+
- "email=? ,"+
- "password=? ,"+
- "country=? ,"+
- "jointime=? ,"+
- "status=? ,"+
- "admin=? ,"+
- "lastlogin=? ,"+
- "logindaily=? ,"+
- "lang=? ,"+
- "isbot=? ,"+
- "fbuserid=? ,"+
- "selectusername=? ,"+
- "jerseycolor=? ,"+
- "sessionid=? "+
- "where username=?")
- if errDb != nil {
- fmt.Println(errDb)
- fmt.Println("Mysql Update Error !!")
- continue
- }
- update.Exec(
- users.UserName,
- users.Email,
- users.Password,
- users.Country,
- users.JoinTime,
- users.Status,
- users.Admin,
- users.LastLogin,
- users.LoginDaily,
- users.Lang,
- users.IsBot,
- users.FbUserId,
- users.SelectUsername,
- users.JerseyColor,
- users.SessionId,
- queue.Val())
- }
- }
- // 5sn dinlenme
- time.Sleep(5 * time.Second)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement