From cffc76e87bc92dd4fb4617ba097103163adde6d4 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 20 十月 2023 15:50:33 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/apsClient

---
 serf/sync.go |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/serf/sync.go b/serf/sync.go
index c6337cf..829d412 100644
--- a/serf/sync.go
+++ b/serf/sync.go
@@ -402,8 +402,11 @@
 	}
 }
 
+// serf 鍚屾鏁版嵁鐨勯檺鍒朵负92160 byte
 func (ss *SyncServer) handleSyncTableMessage(msg []byte) error {
+	sizeLimit := 61440
 	targetId := string(msg)
+
 	//fmt.Println("鍚屾鍏ㄩ噺鏁版嵁缁欒妭鐐�:", targetId)
 	sqls, err := DumpTables(ss.sqlDB, ss.syncTables)
 	if err != nil {
@@ -412,7 +415,19 @@
 	}
 
 	syncSql := strings.Join(sqls, ";")
-	err = ss.pubSyncSqlMessage([]byte(syncSql), targetId)
+	if len(syncSql) < sizeLimit {
+		err = ss.pubSyncSqlMessage([]byte(syncSql), targetId)
+	} else {
+		shard := ""
+		for _, sql := range sqls{
+			if len(shard) + len(sql) > sizeLimit {
+				err = ss.pubSyncSqlMessage([]byte(shard), targetId)
+				shard = ""
+			}
+
+			shard = fmt.Sprintf("%s%s;",shard,sql)
+		}
+	}
 
 	return err
 }

--
Gitblit v1.8.0