fix: 机器计划任务、数据库迁移任务初始化问题修复

This commit is contained in:
meilin.huang
2025-06-01 20:39:54 +08:00
parent 7a17042276
commit aac4c2b42b
5 changed files with 53 additions and 74 deletions

View File

@@ -62,6 +62,9 @@ type App[T model.ModelI] interface {
// @param cond 可为*model.QueryCond也可以为普通查询model
CountByCond(cond any) int64
// CursorByCond 根据指定条件遍历model表数据
CursorByCond(cond any, handler func(T) error) error
// Tx 执行事务操作
Tx(ctx context.Context, funcs ...func(context.Context) error) (err error)
}
@@ -152,6 +155,29 @@ func (ai *AppImpl[T, R]) CountByCond(cond any) int64 {
return ai.GetRepo().CountByCond(cond)
}
func (ai *AppImpl[T, R]) CursorByCond(cond any, handler func(T) error) error {
offset := 0
batchSize := 200
for {
data, err := ai.GetRepo().SelectByCondWithOffset(cond, batchSize, offset)
if err != nil {
return err
}
if len(data) == 0 {
break
}
for _, item := range data {
if err := handler(item); err != nil {
return err
}
}
offset += len(data)
}
return nil
}
// Tx 执行事务操作
func (ai *AppImpl[T, R]) Tx(ctx context.Context, funcs ...func(context.Context) error) (err error) {
dbCtx := ctx