一波更新

This commit is contained in:
tangping
2025-01-23 16:12:49 +08:00
parent 22ac6c1fed
commit 5f3a40a50e
90 changed files with 2392 additions and 1791 deletions

View File

@@ -0,0 +1,37 @@
package internal
import (
"common/connection"
"goutil/logUtilPlus"
)
// ExecSql 执行sql
func ExecSql(sql string) error {
defer func() error {
if err := recover(); err != nil {
logUtilPlus.ErrorLog("mq远程执行sql异常对应sql%s", sql)
//写入失败的文件,便于后续排查
AddSqlErr(sql)
}
return nil
}()
//获取数据库连接
db := connection.GetAdminDB()
logUtilPlus.InfoLog("执行sql:%s", sql)
//执行sql
err := db.Exec(sql).Error
//判断错误
if err != nil {
//记录错误
logUtilPlus.ErrorLog("ExecSql error:", err)
}
return nil
}

View File

@@ -0,0 +1,60 @@
package internal
import (
"goutil/fileUtil"
"sync"
"time"
)
var (
sqlErrList []string
sqlErrListLock sync.RWMutex
fileName = "ErrSql"
)
func init() {
go func() {
for {
//休息一秒
time.Sleep(time.Second)
WriteErrSql()
}
}()
}
// AddSqlErr 添加异常sql
func AddSqlErr(sql string) {
//数据库过大就不再写入
if len(sqlErrList) > 10000 {
return
}
func() {
sqlErrListLock.Lock()
defer sqlErrListLock.Unlock()
sqlErrList = append(sqlErrList, sql)
}()
}
// WriteErrSql 获取异常sql 写入文件
func WriteErrSql() {
sqlErrListLock.RLock()
defer sqlErrListLock.RUnlock()
//文件名拼接
filePath := fileName + "/" + time.Now().Format("2006-01-02")
fileName := time.Now().Format("2006-01-02 09") + ".txt"
for _, sql := range sqlErrList {
//sql 添加换行符
sql += ";\r\n"
fileUtil.WriteFile(filePath, fileName, true, sql)
//删除已经执行的sql
sqlErrList = sqlErrList[1:]
}
}