基于serf的数据库同步模块库
liuxiaolong
2020-09-18 328a2022e41a95c68f70c83d04fa3e43ead8bfeb
save event to sql_sync_his
1个文件已修改
58 ■■■■ 已修改文件
agent.go 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
agent.go
@@ -139,6 +139,18 @@
                go func() {
                    flag, e := ExecuteSqlByGorm(sqlUe.Sql)
                    logger.Info("ev.LTime:",ev.LTime,"userEvent exec ",sqlUe.Sql,",Result:",flag,", err:",e)
                    logId := strconv.Itoa(int(ev.LTime))
                    logT := time.Now().Format("2006-01-02 15:04:05")
                    logSql := strings.Join(sqlUe.Sql, ";")
                    logResult := "0"
                    if flag {
                        logResult = "1"
                    }
                    logErr := ""
                    if e != nil {
                        logErr = e.Error()
                    }
                    ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+logId+"','"+logT+"','"+logSql+"','"+sqlUe.Owner+"',"+logResult+",'"+logErr+"')"})
                }()
            }
        } else if ev.Name == UserEventSyncDbTablePersonCache {
@@ -236,11 +248,21 @@
                    addr := targetNode.Addr.String() + ":" + strconv.Itoa(TcpTransportPort)
                    sendErr := rawSendTcpMsg(addr, bytesReturn)
                    if sendErr != nil {
                        logger.Debug("sendToTcp err:",sendErr)
                    } else {
                    logId := strconv.Itoa(int(ev.LTime))
                    logT := time.Now().Format("2006-01-02 15:04:05")
                    logSql := "QueryEventUpdateDBData from "+targetNode.Name
                    logResult := "0"
                    logErr := ""
                    if sendErr ==nil {
                        logResult = "1"
                        logger.Debug("sendToTcp success")
                    } else {
                        logErr = sendErr.Error()
                        logger.Debug("sendToTcp err:",sendErr)
                    }
                    ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+logId+"','"+logT+"','"+logSql+"','"+targetNode.Name+"',"+logResult+",'"+logErr+"')"})
                }()
            } else {
                logger.Debug("targetNode is nil")
@@ -258,18 +280,42 @@
            if ev.Members !=nil && len(ev.Members) ==1 {
                leaveMember := ev.Members[0]
                leaveSql := "update cluster_node set isDelete=1 where node_id='"+leaveMember.Name+"'"
                ExecuteSqlByGorm([]string{ leaveSql })
                flag,e := ExecuteSqlByGorm([]string{ leaveSql })
                logger.Info("EventMemberLeave,current Members:",ev.Members)
                logId := ""
                logT := time.Now().Format("2006-01-02 15:04:05")
                logSql := leaveSql
                logResult := "0"
                if flag {
                    logResult = "1"
                }
                logErr := ""
                if e != nil {
                    logErr = e.Error()
                }
                ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+logId+"','"+logT+"','"+logSql+"','"+leaveMember.Name+"',"+logResult+",'"+logErr+"')"})
            }
            return
        } else if event.EventType() == serf.EventMemberJoin {
            if ev.Members !=nil && len(ev.Members) ==1 {
                leaveMember := ev.Members[0]
                leaveSql := "update cluster_node set isDelete=0 where node_id='"+leaveMember.Name+"'"
                ExecuteSqlByGorm([]string{ leaveSql })
                joinSql := "update cluster_node set isDelete=0 where node_id='"+leaveMember.Name+"'"
                flag,e := ExecuteSqlByGorm([]string{joinSql})
                logger.Info("EventMemberJoin,current Members:",ev.Members)
                logId := ""
                logT := time.Now().Format("2006-01-02 15:04:05")
                logSql := joinSql
                logResult := "0"
                if flag {
                    logResult = "1"
                }
                logErr := ""
                if e != nil {
                    logErr = e.Error()
                }
                ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+logId+"','"+logT+"','"+logSql+"','"+leaveMember.Name+"',"+logResult+",'"+logErr+"')"})
            }
            return
        }