mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-16 03:47:22 +08:00
- SQL、CSV、JSON 与 XLSX 改为资源受限的流式解析,并支持压缩、编码和方言预检 - 增加遇错停止/继续策略、持久任务、错误行导出、源文件身份与安全取消 - 为数据库驱动补齐上下文事务和写入结果未知语义,避免失败重放与脏会话复用
25 lines
723 B
Go
25 lines
723 B
Go
package importjob
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
)
|
|
|
|
var ErrResumeUnsafe = errors.New("import job cannot be resumed safely")
|
|
|
|
func ValidateResume(job Job, sourceIdentityToken, targetFingerprint, optionsHash string) error {
|
|
if job.Status != StatusInterrupted || !job.Resumable || !job.Checkpoint.Safe || job.OutcomeUnknown {
|
|
return ErrResumeUnsafe
|
|
}
|
|
if strings.TrimSpace(sourceIdentityToken) == "" || sourceIdentityToken != job.SourceIdentityToken {
|
|
return ErrResumeUnsafe
|
|
}
|
|
if strings.TrimSpace(targetFingerprint) == "" || targetFingerprint != job.TargetFingerprint {
|
|
return ErrResumeUnsafe
|
|
}
|
|
if strings.TrimSpace(optionsHash) == "" || optionsHash != job.OptionsHash {
|
|
return ErrResumeUnsafe
|
|
}
|
|
return nil
|
|
}
|