From ac6f62db9965ba9df68c72e4b1405b01828dda54 Mon Sep 17 00:00:00 2001 From: ze0s <43699394+zze0s@users.noreply.github.com> Date: Thu, 12 Sep 2024 12:13:05 +0200 Subject: [PATCH] fix(feeds): start feeds in background (#1718) --- internal/feed/service.go | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/internal/feed/service.go b/internal/feed/service.go index fb8b34d..1f819c2 100644 --- a/internal/feed/service.go +++ b/internal/feed/service.go @@ -375,20 +375,23 @@ func (s *service) start() error { s.log.Debug().Msgf("preparing staggered start of %d feeds", len(feeds)) - for _, feed := range feeds { - if !feed.Enabled { - s.log.Trace().Msgf("feed disabled, skipping... %s", feed.Name) - continue - } + // start in background to not block startup and signal.Notify signals until all feeds are started + go func(feeds []domain.Feed) { + for _, feed := range feeds { + if !feed.Enabled { + s.log.Trace().Msgf("feed disabled, skipping... %s", feed.Name) + continue + } - if err := s.startJob(&feed); err != nil { - s.log.Error().Err(err).Msgf("failed to initialize feed job: %s", feed.Name) - continue - } + if err := s.startJob(&feed); err != nil { + s.log.Error().Err(err).Msgf("failed to initialize feed job: %s", feed.Name) + continue + } - // add sleep for the next iteration to start staggered which should mitigate sqlite BUSY errors - time.Sleep(time.Second * 5) - } + // add sleep for the next iteration to start staggered which should mitigate sqlite BUSY errors + time.Sleep(time.Second * 5) + } + }(feeds) return nil }