diff --git a/pkg/eventpolling/polling.go b/pkg/eventpolling/polling.go index 8ae2580..e92b404 100644 --- a/pkg/eventpolling/polling.go +++ b/pkg/eventpolling/polling.go @@ -23,13 +23,15 @@ func NewEventPolling(client *client.EventSourcingHttpClient, eventRepo *reposito func (ep *EventPolling) PollEvents() { - hadMoreThenZeroEvents := true for { - if hadMoreThenZeroEvents { - time.Sleep(100 * time.Millisecond) - } else { - time.Sleep(500 * time.Millisecond) - } + time.Sleep(100 * time.Millisecond) + ep.PollEventsUntilEmpty() + } + +} + +func (ep *EventPolling) PollEventsUntilEmpty() { + for { eId, err := ep.eventRepo.GetLastEvent() if err != nil { log.Err(err).Msg("Error while getting last events") @@ -50,17 +52,14 @@ func (ep *EventPolling) PollEvents() { } } if len(events) == 0 { - hadMoreThenZeroEvents = true - continue + return } - hadMoreThenZeroEvents = false //will this break the db consistency if there are going to be multiple instances of this service? // probably but if we dont a volume (that both instances use as a db file) this should be fine err = ep.eventRepo.ReplaceEvent(events[len(events)-1].Id) if err != nil { log.Err(err).Msg("Error while replacing event") - break + } } - }