Apply .gitignore rules
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
package logSqlSync
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"goutil/logUtil"
|
||||
)
|
||||
|
||||
// 错误信息记录表是否已经初始化
|
||||
var ifSyncErrorInfoTableInited bool = false
|
||||
|
||||
// 同步的错误信息处理对象
|
||||
type syncErrorInfo struct {
|
||||
// 数据库连接对象
|
||||
db *sql.DB
|
||||
}
|
||||
|
||||
// 初始化表信息
|
||||
func (this *syncErrorInfo) init() error {
|
||||
// 初始化表结构
|
||||
if ifSyncErrorInfoTableInited == false {
|
||||
err := this.initTable(this.db)
|
||||
if err == nil {
|
||||
ifSyncErrorInfoTableInited = true
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// 把同步信息更新到数据库
|
||||
// data:待更新的数据
|
||||
// 返回值:
|
||||
// error:错误信息
|
||||
func (this *syncErrorInfo) AddErrorSql(tran *sql.Tx, data string, errMsg string) error {
|
||||
updateSql := "INSERT INTO `sync_error_info` (`SqlString`,`ExecuteTime`,`RetryCount`,`ErrMessage`) VALUES(?,?,?,?);"
|
||||
|
||||
var err error
|
||||
if tran != nil {
|
||||
_, err = tran.Exec(updateSql, data, time.Now(), 0, errMsg)
|
||||
} else {
|
||||
_, err = this.db.Exec(updateSql, data, time.Now(), 0, errMsg)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
logUtil.ErrorLog(fmt.Sprintf("logSqlSync/syncErrorInfo.AddErrorSql Error:%s", err.Error()))
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// 初始化同步信息表结构
|
||||
// db:数据库连接对象
|
||||
func (this *syncErrorInfo) initTable(db *sql.DB) error {
|
||||
// 创建同步信息表
|
||||
createTableSql := `CREATE TABLE IF NOT EXISTS sync_error_info (
|
||||
Id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增Id',
|
||||
SqlString varchar(1024) NOT NULL COMMENT '执行的sql',
|
||||
ExecuteTime datetime NOT NULL COMMENT '最近一次执行时间',
|
||||
RetryCount int NOT NULL COMMENT '重试次数',
|
||||
ErrMessage text NULL COMMENT '执行错误的信息',
|
||||
PRIMARY KEY (Id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='未执行成功的sql数据';`
|
||||
if _, err := db.Exec(createTableSql); err != nil {
|
||||
logUtil.ErrorLog(fmt.Sprintf("logSqlSync/syncErrorInfo.initTable Error:%s", err.Error()))
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// 创建同步信息对象
|
||||
// _db:数据库连接对象
|
||||
// 返回值:
|
||||
// 同步信息对象
|
||||
func newSyncErrorInfoObject(_db *sql.DB) (result *syncErrorInfo, err error) {
|
||||
result = &syncErrorInfo{
|
||||
db: _db,
|
||||
}
|
||||
|
||||
err = result.init()
|
||||
|
||||
return result, err
|
||||
}
|
||||
Reference in New Issue
Block a user