Skip to content

Commit

Permalink
add scheduling opts
Browse files Browse the repository at this point in the history
  • Loading branch information
Elbehery committed Jul 10, 2024
1 parent 43dbb40 commit 7f27ef7
Showing 1 changed file with 22 additions and 40 deletions.
62 changes: 22 additions & 40 deletions pkg/cmd/backuprestore/backupnoconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package backuprestore
import (
"context"
"fmt"
"github.com/google/uuid"
"io"
"slices"

Expand All @@ -15,7 +16,6 @@ import (
"github.com/spf13/pflag"

v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
kerrors "k8s.io/apimachinery/pkg/util/errors"
"k8s.io/client-go/tools/clientcmd"
"k8s.io/klog/v2"
)
Expand All @@ -25,6 +25,7 @@ type backupNoConfig struct {
snapshotExist bool
schedule string
retention backupv1alpha1.RetentionPolicy
scheduler gcron.Scheduler
backupOptions
}

Expand Down Expand Up @@ -68,27 +69,22 @@ func (b *backupNoConfig) Run() error {
return err
}

b.scheduler, _ = gcron.NewScheduler(
gcron.WithLimitConcurrentJobs(1, gcron.LimitModeWait),
gcron.WithGlobalJobOptions(
gcron.WithLimitedRuns(1),
gcron.WithSingletonMode(gcron.LimitModeWait)))
defer func() { _ = b.scheduler.Shutdown() }()

if err = b.extractBackupSpecs(backupsClient); err != nil {
return err
}

var errs []error
go func() {
err := b.scheduleBackup()
if err != nil {
errs = append(errs, err)
}
}()
go func() {
err := b.scheduleBackupPrune()
if err != nil {
errs = append(errs, err)
}
}()

if len(errs) > 0 {
return kerrors.NewAggregate(errs)
err = b.scheduleBackup()
if err != nil {
return err
}

return nil
}

Expand Down Expand Up @@ -145,20 +141,24 @@ func (b *backupNoConfig) backup() error {
}

func (b *backupNoConfig) scheduleBackup() error {
s, _ := gcron.NewScheduler()
defer func() { _ = s.Shutdown() }()

if _, err := s.NewJob(
if _, err := b.scheduler.NewJob(
gcron.CronJob(
b.schedule,
false,
),
gcron.NewTask(b.backup()),
gcron.WithEventListeners(
gcron.AfterJobRuns(
func(jobID uuid.UUID, jobName string) {
b.pruneBackups()
},
),
),
); err != nil {
return err
}

s.Start()
b.scheduler.Start()
return nil
}

Expand Down Expand Up @@ -187,21 +187,3 @@ func (b *backupNoConfig) pruneBackups() error {
return err
}
}

func (b *backupNoConfig) scheduleBackupPrune() error {
s, _ := gcron.NewScheduler()
defer func() { _ = s.Shutdown() }()

if _, err := s.NewJob(
gcron.CronJob(
b.schedule,
false,
),
gcron.NewTask(b.pruneBackups()),
); err != nil {
return err
}

s.Start()
return nil
}

0 comments on commit 7f27ef7

Please sign in to comment.