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 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
{
@@ -119,6 +123,8 @@ public class Zapper : IHostedService
{
}
}));
}
}
var waitingToken = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);