mirror of
				https://gitee.com/dromara/mayfly-go
				synced 2025-11-04 08:20:25 +08:00 
			
		
		
		
	!85 fix: 修复 BINLOG同步任务加载问题
* Merge branch 'dev' of gitee.com:dromara/mayfly-go into feat-db-bak * fix: 修复 BINLOG 同步任务加载问题
This commit is contained in:
		@@ -24,9 +24,11 @@ func (b *DbBackup) GetDbName() string {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (b *DbBackup) Schedule() (time.Time, error) {
 | 
			
		||||
	var deadline time.Time
 | 
			
		||||
	if b.IsFinished() || !b.Enabled {
 | 
			
		||||
		return deadline, runner.ErrFinished
 | 
			
		||||
	if b.IsFinished() {
 | 
			
		||||
		return time.Time{}, runner.ErrJobFinished
 | 
			
		||||
	}
 | 
			
		||||
	if !b.Enabled {
 | 
			
		||||
		return time.Time{}, runner.ErrJobDisabled
 | 
			
		||||
	}
 | 
			
		||||
	switch b.LastStatus {
 | 
			
		||||
	case DbJobSuccess:
 | 
			
		||||
@@ -34,13 +36,12 @@ func (b *DbBackup) Schedule() (time.Time, error) {
 | 
			
		||||
		if lastTime.Before(b.StartTime) {
 | 
			
		||||
			lastTime = b.StartTime.Add(-b.Interval)
 | 
			
		||||
		}
 | 
			
		||||
		deadline = lastTime.Add(b.Interval - lastTime.Sub(b.StartTime)%b.Interval)
 | 
			
		||||
		return lastTime.Add(b.Interval - lastTime.Sub(b.StartTime)%b.Interval), nil
 | 
			
		||||
	case DbJobFailed:
 | 
			
		||||
		deadline = time.Now().Add(time.Minute)
 | 
			
		||||
		return time.Now().Add(time.Minute), nil
 | 
			
		||||
	default:
 | 
			
		||||
		deadline = b.StartTime
 | 
			
		||||
		return b.StartTime, nil
 | 
			
		||||
	}
 | 
			
		||||
	return deadline, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (b *DbBackup) IsFinished() bool {
 | 
			
		||||
 
 | 
			
		||||
@@ -43,9 +43,8 @@ func (b *DbBinlog) GetDbName() string {
 | 
			
		||||
func (b *DbBinlog) Schedule() (time.Time, error) {
 | 
			
		||||
	switch b.GetJobBase().LastStatus {
 | 
			
		||||
	case DbJobSuccess:
 | 
			
		||||
		return time.Time{}, runner.ErrFinished
 | 
			
		||||
		return time.Time{}, runner.ErrJobFinished
 | 
			
		||||
	case DbJobFailed:
 | 
			
		||||
 | 
			
		||||
		return time.Now().Add(BinlogDownloadInterval), nil
 | 
			
		||||
	default:
 | 
			
		||||
		return time.Now(), nil
 | 
			
		||||
 
 | 
			
		||||
@@ -28,23 +28,18 @@ func (r *DbRestore) GetDbName() string {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *DbRestore) Schedule() (time.Time, error) {
 | 
			
		||||
	var deadline time.Time
 | 
			
		||||
	if r.IsFinished() || !r.Enabled {
 | 
			
		||||
		return deadline, runner.ErrFinished
 | 
			
		||||
	if !r.Enabled {
 | 
			
		||||
		return time.Time{}, runner.ErrJobDisabled
 | 
			
		||||
	}
 | 
			
		||||
	switch r.LastStatus {
 | 
			
		||||
	case DbJobSuccess:
 | 
			
		||||
		lastTime := r.LastTime.Time
 | 
			
		||||
		if lastTime.Before(r.StartTime) {
 | 
			
		||||
			lastTime = r.StartTime.Add(-r.Interval)
 | 
			
		||||
		}
 | 
			
		||||
		deadline = lastTime.Add(r.Interval - lastTime.Sub(r.StartTime)%r.Interval)
 | 
			
		||||
	case DbJobFailed:
 | 
			
		||||
		deadline = time.Now().Add(time.Minute)
 | 
			
		||||
	case DbJobSuccess, DbJobFailed:
 | 
			
		||||
		return time.Time{}, runner.ErrJobFinished
 | 
			
		||||
	default:
 | 
			
		||||
		deadline = r.StartTime
 | 
			
		||||
		if time.Now().Sub(r.StartTime) > time.Hour {
 | 
			
		||||
			return time.Time{}, runner.ErrJobTimeout
 | 
			
		||||
		}
 | 
			
		||||
		return r.StartTime, nil
 | 
			
		||||
	}
 | 
			
		||||
	return deadline, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *DbRestore) IsEnabled() bool {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user