From d67b30fa3005f543554ad181b6bc6561eefa6f6f Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期三, 13 五月 2020 20:43:48 +0800
Subject: [PATCH] add log

---
 sync.go |   94 ++++++++++++++++++++++++++++------------------
 1 files changed, 57 insertions(+), 37 deletions(-)

diff --git a/sync.go b/sync.go
index 3f25454..19f8e24 100755
--- a/sync.go
+++ b/sync.go
@@ -5,9 +5,8 @@
 	sdb "basic.com/Android/syncdb.git"
 	"basic.com/valib/logger.git"
 	"encoding/json"
-	"strconv"
+	"fmt"
 	"strings"
-	"time"
 )
 type ReceiveSqlInterface2 interface {
 	sdb.ReceiveSqlInterface
@@ -17,7 +16,7 @@
 	sdb.RegisterReceiveSqlInterface(c)
 }
 
-func InitAgent(devID string) bool {
+/*func InitAgent(devID string) bool {
 	var nodeIps []string
 	sqlFindAllCluster := string("select * from " + dBNameCluster)
 	clusters, err := sdb.ExecuteQuerySql([]string{sqlFindAllCluster})
@@ -44,7 +43,7 @@
 	}
 
 	return true
-}
+}*/
 
 func SyncInit(clusterID string, password string, nodeID string, strAddrs string, snapshotPath string) bool {
 	var ips []string
@@ -63,6 +62,22 @@
 	}
 
 	return true
+}
+
+type DbHandlerInterface interface {
+	sdb.DbHandler
+}
+
+type DbDumpHandlerInterface interface {
+	sdb.DbDumpHandler
+}
+
+func RegisterDbHandler(h DbHandlerInterface) {
+	sdb.RegisterDbHandler(h)
+}
+
+func RegisterDbDumpHandler(h DbDumpHandlerInterface) {
+	sdb.RegisterDbDumpHandler(h)
 }
 
 func JoinByNodeAddrs(strAddrs string) bool {
@@ -87,13 +102,21 @@
 	if isOk { 
 		logger.Debug("dbSync.Init success")
 
-		if ! syncTableDataFromCluster(clusterID, devID, devIP, devName) {
+		if !syncTableDataFromCluster(clusterID, devID, devIP, devName) {
 			logger.Error("鍔犲叆闆嗙兢澶辫触锛侊紒锛�")
+			if agent != nil {
+				agent.Leave()
+				err := agent.Shutdown()
+				if err != nil {
+					logger.Error("syncTableDataFromCluster err,shutdown err:", err)
+				}
+			}
 			return false
 		}
 	} else {
 		logger.Error("dbSync.Init error")
 		if agent != nil {
+			agent.Leave()
 			err := agent.Shutdown()
 			if err != nil {
 				logger.Error("dbSync.Init err,shutdown err:", err)
@@ -116,21 +139,13 @@
 }
 
 func syncTableDataFromCluster(clusterID, devID, devIP, devName string) bool {
-	var err error
-
-	foreignSql := string("PRAGMA foreign_keys=OFF")
-	_, err = sdb.ExecuteWriteSql([]string{foreignSql}, false)
-	if err != nil {
-		return false
-	}
-
-	var sqls []string
+	var sqls = []string{"PRAGMA foreign_keys=OFF"}
 	var delSql string
 	for _, t := range syncTables {
-		if t == dBNameTables {
-			delSql = "delete from " + t + " where (analyServerId='' or analyServerId=NULL)"
-		} else if t == dBNameTablePersons {
+		if t == dBNameTablePersons {
 			delSql = "delete from " + t + " where tableId in (select id from dbtables where (analyServerId='' or analyServerId=NULL))"
+		} else if t == dBNameTables {
+			delSql = "delete from " + t + " where (analyServerId='' or analyServerId=NULL)"
 		} else {
 			delSql = "delete from " + t
 		}
@@ -138,37 +153,42 @@
 	}
 
 	var dumpSqls *[]string
-	dumpSqls, err = agent.GetTableDataFromCluster(syncTables)
+	dumpSqls, err := agent.GetTableDataFromCluster(syncTables)
+	fmt.Println("dumpSqls:", dumpSqls, "err:",err)
 	if dumpSqls != nil {
 		for _, dumpSql := range *dumpSqls {
 			sqls = append(sqls, dumpSql)
 		}
-	}
-
-	logger.Debug("鎴愬姛娣诲姞褰撳墠鑺傜偣鍒伴泦缇よ妭鐐逛腑")
-
-	timeUnix := time.Now().Unix()
-	fmtTimeStr := time.Unix(timeUnix, 0).Format("2006-01-02 15:04:05")
-
-	sqlSync := "insert into cluster_node(id,cluster_id,node_name,node_id,node_ip,create_time) values ('" +
-		devID + "','" + clusterID + "','" + devName + "','" + devID + "','" +
-		(devIP + ":" + strconv.Itoa(sdb.DefaultBindPort)) + "','" + fmtTimeStr + "')"
-	sqls = append(sqls, sqlSync)
-
-	_, err = sdb.ExecuteWriteSql(sqls, true)
-	if err != nil {
-		logger.Debug("sdb.ExecuteWriteSql ERROR:", err)
+	} else {
 		return false
 	}
 
-	agent.SyncSql([]string{sqlSync})
+	logger.Debug("鎴愬姛鑾峰彇闆嗙兢涓暟鎹�,err:",err)
 
-	foreignSql = string("PRAGMA foreign_keys=ON")
-	_, err = sdb.ExecuteWriteSql([]string{foreignSql}, false)
-	if err != nil {
+	//timeUnix := time.Now().Unix()
+	//fmtTimeStr := time.Unix(timeUnix, 0).Format("2006-01-02 15:04:05")
+	//
+	//sqlSync := "insert into cluster_node(id,cluster_id,node_name,node_id,node_ip,create_time) values ('" +
+	//	devID + "','" + clusterID + "','" + devName + "','" + devID + "','" +
+	//	(devIP + ":" + strconv.Itoa(sdb.DefaultBindPort)) + "','" + fmtTimeStr + "')"
+	//sqls = append(sqls, sqlSync)
+	sqls = append(sqls, "PRAGMA foreign_keys=ON")
+	sqlDump := strings.Join(sqls, ";")
+	if !sdb.DbHandle.Execute(sqlDump) {
+		logger.Debug("sdb.DbHandle.Execute ret: false")
 		return false
+	} else {
+		logger.Debug("sdb.DbHandle.Execute ret: true")
 	}
 
+	//agent.SyncSql([]string{sqlSync})
+
+	//foreignSql = string("PRAGMA foreign_keys=ON")
+	//_, err = sdb.ExecuteWriteSql([]string{foreignSql}, false)
+	//if err != nil {
+	//	return false
+	//}
+
 	return true
 }
 

--
Gitblit v1.8.0