chunk zapper to not use all sockets at once

This commit is contained in:
Kukks
2023-05-08 14:12:01 +02:00
parent 0484c87863
commit 475db0ebf3

View File

@@ -100,9 +100,13 @@ public class Zapper : IHostedService
} }
} }
var relaysToConnectTo = pendingZaps.SelectMany(@event => @event.relays).Distinct(); var relaysToConnectTo = pendingZaps.SelectMany(@event => @event.relays).Distinct();
var relaysToZap =relaysToConnectTo.ToDictionary(s => s, s => pendingZaps.Where(@event => @event.relays.Contains(s)).Select(@event => @event.nostrEvent).ToArray()); var relaysToZap =relaysToConnectTo.
ToDictionary(s => s, s => pendingZaps.Where(@event => @event.relays.Contains(s)).Select(@event => @event.nostrEvent).ToArray())
.Chunk(5);
await Task.WhenAll(relaysToZap.Select(async relay => foreach (var chunk in relaysToZap)
{
await Task.WhenAll(chunk.Select(async relay =>
{ {
try try
{ {
@@ -119,6 +123,8 @@ public class Zapper : IHostedService
{ {
} }
})); }));
}
} }
var waitingToken = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); var waitingToken = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);