2 Star 4 Fork 5

联犀/中台模块

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
sql.go 1.80 KB
一键复制 编辑 原始数据 按行查看 历史
杨磊 提交于 2024-11-26 22:06 . feat: 数据库连接串支持环境变量
package processTask
import (
"context"
"database/sql"
"gitee.com/unitedrhino/core/service/timed/internal/domain"
"gitee.com/unitedrhino/core/service/timed/internal/repo/relationDB"
"gitee.com/unitedrhino/share/clients"
"gitee.com/unitedrhino/share/conf"
"gitee.com/unitedrhino/share/errors"
"gitee.com/unitedrhino/share/stores"
"github.com/spf13/cast"
"github.com/zeromicro/go-zero/core/logx"
)
func (t ProcessTask) SqlExec(ctx context.Context, task *domain.TaskInfo) error {
var execNum int64
err := func() error {
dsn := cast.ToString(task.Env[domain.SqlEnvDsn])
dbType := cast.ToString(task.Env[domain.SqlEnvDBType])
if dsn == "" { //走默认值
err := stores.GetCommonConn(ctx).Exec(task.Sql.Param.Sql).Error
return stores.ErrFmt(err)
}
driver := cast.ToString(task.Env[domain.SqlEnvDriver])
db, err := func() (*sql.DB, error) {
switch dbType {
case conf.Tdengine:
td, err := clients.NewTDengine(conf.TSDB{
DBType: dbType,
Driver: driver,
DSN: dsn,
})
if err != nil {
return nil, err
}
return td.DB, nil
default:
conn, err := stores.GetConn(conf.Database{
DBType: dbType,
DSN: dsn,
})
if err != nil {
return nil, err
}
return conn.DB()
}
}()
if err != nil {
return err
}
defer db.Close()
ret, err := db.Exec(task.Sql.Param.Sql)
if err != nil {
return stores.ErrFmt(err)
}
execNum, _ = ret.RowsAffected()
return nil
}()
e := errors.Fmt(err)
er := relationDB.NewJobLogRepo(ctx).Insert(ctx, &relationDB.TimedTaskLog{
Params: task.Sql.Param.Sql,
ResultCode: e.GetCode(),
ResultMsg: e.GetMsg(),
TimedTaskLogSql: &relationDB.TimedTaskLogSql{ExecNum: execNum},
})
if er != nil {
logx.WithContext(ctx).Errorf("SqlExec.JobLog.Insert err:%v", er)
}
return err
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/unitedrhino/core.git
git@gitee.com:unitedrhino/core.git
unitedrhino
core
中台模块
v1.2.3

搜索帮助