Add config option for max shard concurrency

This commit is contained in:
Ske
2021-03-18 09:47:58 +01:00
parent 2039a34c16
commit 13e3289c26
4 changed files with 27 additions and 11 deletions

View File

@@ -2,7 +2,6 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Myriad.Types;
@@ -69,9 +68,10 @@ namespace Myriad.Gateway
await StartShards(concurrency);
}
private async Task StartShards(int concurrency)
{
concurrency = GetActualShardConcurrency(concurrency);
var lastTime = DateTimeOffset.UtcNow;
var identifyCalls = 0;
@@ -112,5 +112,13 @@ namespace Myriad.Gateway
if (EventReceived != null)
await EventReceived(shard, evt);
}
private int GetActualShardConcurrency(int recommendedConcurrency)
{
if (_gatewaySettings.MaxShardConcurrency == null)
return recommendedConcurrency;
return Math.Min(_gatewaySettings.MaxShardConcurrency.Value, recommendedConcurrency);
}
}
}