diff --git a/frontend/src/views/ops/db/transfer/DbTransferEdit.vue b/frontend/src/views/ops/db/transfer/DbTransferEdit.vue index 38c25e60..d8fb983f 100644 --- a/frontend/src/views/ops/db/transfer/DbTransferEdit.vue +++ b/frontend/src/views/ops/db/transfer/DbTransferEdit.vue @@ -316,7 +316,7 @@ watch(dialogVisible, async (newValue: boolean) => { srcTreeRef.value.setCheckedKeys(form.checkedKeys.split(',')); // 初始化默认值 - form.cronAble = state.form.cronAble || 0; + form.cronAble = form.cronAble || -1; form.mode = form.mode || 1; form.extra = form.extra || { fileType: fileTypeOptions[0].value }; diff --git a/server/internal/db/api/form/db_data_sync.go b/server/internal/db/api/form/db_data_sync.go index f4f15e68..46542cce 100644 --- a/server/internal/db/api/form/db_data_sync.go +++ b/server/internal/db/api/form/db_data_sync.go @@ -4,7 +4,6 @@ type DataSyncTaskForm struct { Id uint64 `json:"id"` TaskName string `binding:"required" json:"taskName"` TaskCron string `binding:"required" json:"taskCron"` - TaskKey string `json:"taskKey"` Status int `binding:"required" json:"status"` SrcDbId int64 `binding:"required" json:"srcDbId"` diff --git a/server/internal/db/application/db_data_sync.go b/server/internal/db/application/db_data_sync.go index d0c7b9b8..0705b341 100644 --- a/server/internal/db/application/db_data_sync.go +++ b/server/internal/db/application/db_data_sync.go @@ -71,7 +71,13 @@ func (app *dataSyncAppImpl) Save(ctx context.Context, taskEntity *entity.DataSyn taskEntity.TaskKey = uuid.New().String() err = app.Insert(ctx, taskEntity) } else { - taskEntity.TaskKey = "" + if taskEntity.TaskKey == "" { + task, err := app.GetById(taskEntity.Id) + if err != nil { + return errorx.NewBiz("db sync task not found") + } + taskEntity.TaskKey = task.TaskKey + } err = app.UpdateById(ctx, taskEntity) } if err != nil { diff --git a/server/internal/db/application/db_transfer.go b/server/internal/db/application/db_transfer.go index 8d66d2e7..948f1138 100644 --- a/server/internal/db/application/db_transfer.go +++ b/server/internal/db/application/db_transfer.go @@ -77,11 +77,19 @@ func (app *dbTransferAppImpl) Save(ctx context.Context, taskEntity *entity.DbTra taskEntity.TaskKey = uuid.New().String() err = app.Insert(ctx, taskEntity) } else { + if taskEntity.TaskKey == "" { + task, err := app.GetById(taskEntity.Id) + if err != nil { + return errorx.NewBiz("db transfer task not found") + } + taskEntity.TaskKey = task.TaskKey + } err = app.UpdateById(ctx, taskEntity) } if err != nil { return err } + app.addCronJob(ctx, taskEntity) return nil } @@ -411,12 +419,6 @@ func (app *dbTransferAppImpl) addCronJob(ctx context.Context, taskEntity *entity // 根据状态添加新的任务 if taskEntity.Status == entity.DbTransferTaskStatusEnable && taskEntity.CronAble == entity.DbTransferTaskCronAbleEnable { - if key == "" { - taskEntity.TaskKey = uuid.New().String() - key = taskEntity.TaskKey - _ = app.UpdateById(ctx, taskEntity) - } - taskId := taskEntity.Id if err := scheduler.AddFunByKey(key, taskEntity.Cron, func() { logx.Infof("start the transfer task: %d", taskId)