fix: stop requeuing immediately inside loop that just continually dequeues item

This commit is contained in:
Stevan Freeborn
2025-06-05 23:17:47 -05:00
parent 5ec185ca84
commit 1afaa2bd42
@@ -72,6 +72,8 @@ internal sealed class SubscriptionWorker(
private async Task ProcessSubscriptionQueueAsync(CancellationToken cancellationToken) private async Task ProcessSubscriptionQueueAsync(CancellationToken cancellationToken)
{ {
var tasksToRequeue = new List<SubscribeTask>();
while (_subscriptionQueue.TryDequeue(out var task)) while (_subscriptionQueue.TryDequeue(out var task))
{ {
// We will attempt to process the task // We will attempt to process the task
@@ -90,7 +92,7 @@ internal sealed class SubscriptionWorker(
now now
); );
_subscriptionQueue.Enqueue(task); tasksToRequeue.Add(task);
continue; continue;
} }
@@ -111,6 +113,8 @@ internal sealed class SubscriptionWorker(
_logger.LogWarning("Failed to subscribe to topic: {TopicUrl}", task.TopicUrl); _logger.LogWarning("Failed to subscribe to topic: {TopicUrl}", task.TopicUrl);
} }
tasksToRequeue.ForEach(_subscriptionQueue.Enqueue);
} }
public void Dispose() public void Dispose()