diff --git a/src/Squidex.Infrastructure/EventSourcing/RetrySubscription.cs b/src/Squidex.Infrastructure/EventSourcing/RetrySubscription.cs index 58bfb6125..c995704ef 100644 --- a/src/Squidex.Infrastructure/EventSourcing/RetrySubscription.cs +++ b/src/Squidex.Infrastructure/EventSourcing/RetrySubscription.cs @@ -80,10 +80,7 @@ namespace Squidex.Infrastructure.EventSourcing if (retryWindow.CanRetryAfterFailure()) { - Task.Delay(ReconnectWaitMs, timerCts.Token).ContinueWith(t => - { - dispatcher.DispatchAsync(Subscribe); - }).Forget(); + RetryAsync().Forget(); } else { @@ -92,6 +89,13 @@ namespace Squidex.Infrastructure.EventSourcing } } + private async Task RetryAsync() + { + await Task.Delay(ReconnectWaitMs, timerCts.Token); + + await dispatcher.DispatchAsync(Subscribe); + } + Task IEventSubscriber.OnEventAsync(IEventSubscription subscription, StoredEvent storedEvent) { return dispatcher.DispatchAsync(() => HandleEventAsync(subscription, storedEvent)); diff --git a/tests/Squidex.Infrastructure.Tests/EventSourcing/RetrySubscriptionTests.cs b/tests/Squidex.Infrastructure.Tests/EventSourcing/RetrySubscriptionTests.cs index 6231bc1b4..203730710 100644 --- a/tests/Squidex.Infrastructure.Tests/EventSourcing/RetrySubscriptionTests.cs +++ b/tests/Squidex.Infrastructure.Tests/EventSourcing/RetrySubscriptionTests.cs @@ -44,7 +44,7 @@ namespace Squidex.Infrastructure.EventSourcing { await OnErrorAsync(eventSubscription, new InvalidOperationException()); - await Task.Delay(400); + await Task.Delay(1000); await sut.StopAsync();