internal virtual void Initialize()
{
_logger.LogDebug($"Initiating {_channelConfig.InitialChannelCount} channels.");
for (var i = 0; i < _channelConfig.InitialChannelCount; i++)
{
if (i > _channelConfig.MaxChannelCount)
{
_logger.LogDebug($"Trying to create channel number {i}, but max allowed channels are {_channelConfig.MaxChannelCount}");
continue;
}
CreateAndWireupAsync().Wait();
}
_current = _channels.First;
if (_channelConfig.EnableScaleDown || _channelConfig.EnableScaleUp)
{
_logger.LogInformation($"Scaling is enabled with interval set to {_channelConfig.ScaleInterval}.");
_scaleTimer = new Timer(state =>
{
AdjustChannelCount(_channels.Count, _requestQueue.Count);
}, null, _channelConfig.ScaleInterval, _channelConfig.ScaleInterval);
}
else
{
_logger.LogInformation("Channel scaling is disabled.");
}
}