Merge pull request #4 from StevanFreeborn/stevanfreeborn/fix/infinite-loop-when-checking-to-renew-subscription
fix: stop requeuing immediately inside loop that just continually dequeues item
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user