diff options
| author | Paul Buetow <paul@buetow.org> | 2024-08-12 10:17:51 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-08-12 10:17:51 +0300 |
| commit | 22df44d2e4a6ab928d916da9c1e26aa5d32bbb2d (patch) | |
| tree | 1673d05d569a2b18b32e33d964ec7e73f0fc29cd /internal/server | |
| parent | 85a4cdea7c41cfd2f4fcbe1554494fb0b78ae338 (diff) | |
initiate merge operation by cron ticker
Diffstat (limited to 'internal/server')
| -rw-r--r-- | internal/server/cron/cron.go | 15 | ||||
| -rw-r--r-- | internal/server/repository/repository.go | 7 |
2 files changed, 15 insertions, 7 deletions
diff --git a/internal/server/cron/cron.go b/internal/server/cron/cron.go index bdf7fae..4ec3107 100644 --- a/internal/server/cron/cron.go +++ b/internal/server/cron/cron.go @@ -6,22 +6,25 @@ import ( "time" config "codeberg.org/snonux/gos/internal/config/server" - "codeberg.org/snonux/gos/internal/server/handler" + "codeberg.org/snonux/gos/internal/server/repository" ) -func Start(ctx context.Context, conf config.ServerConfig, hand handler.Handler) error { +func Start(ctx context.Context, conf config.ServerConfig) error { go func() { - helloTicker := time.NewTicker(10 * time.Second) - mergeTicker := time.NewTicker(time.Duration(conf.CRONMergeIntervalS) * time.Second) + helloTicker := time.NewTicker(time.Hour) + mergeTicker := time.NewTicker(time.Second * time.Duration(conf.CRONMergeIntervalS)) for { select { case <-ctx.Done(): return case <-helloTicker.C: - log.Println("Hello ticker ticked") + log.Println("CRON hello ticker ticked") case <-mergeTicker.C: - log.Println("CRON merge ticker ticked") + log.Println("CRON ticker initiating remote merge operation") + if err := repository.Instance(conf).MergeRemotely(ctx); err != nil { + log.Println(err) + } } } }() diff --git a/internal/server/repository/repository.go b/internal/server/repository/repository.go index c81d4f9..b6a1edb 100644 --- a/internal/server/repository/repository.go +++ b/internal/server/repository/repository.go @@ -187,7 +187,12 @@ func (r Repository) Merge(otherEnt types.Entry) error { func (r Repository) MergeRemotely(ctx context.Context) error { var errs []error - for _, partner := range r.conf.Partners() { + partners := r.conf.Partners() + if len(partners) == 0 { + return fmt.Errorf("no parter for remote merge operation configured") + } + + for _, partner := range partners { if err := r.mergeRemotelyFromPartner(ctx, partner); err != nil { errs = append(errs, err) } |
