fix warm up number

This commit is contained in:
Nicolas Constant 2021-04-15 19:39:33 -04:00
parent 32a4a6356b
commit cad6c2018e
No known key found for this signature in database
GPG Key ID: 1E9F677FB01A5688
2 changed files with 12 additions and 9 deletions

View File

@ -16,6 +16,7 @@ namespace BirdsiteLive.Pipeline.Tools
private int _totalUsersCount = -1; private int _totalUsersCount = -1;
private int _warmUpIterations; private int _warmUpIterations;
private const int WarmUpMaxCapacity = 200;
#region Ctor #region Ctor
public MaxUsersNumberProvider(InstanceSettings instanceSettings, ITwitterUserDal twitterUserDal) public MaxUsersNumberProvider(InstanceSettings instanceSettings, ITwitterUserDal twitterUserDal)
@ -31,8 +32,7 @@ namespace BirdsiteLive.Pipeline.Tools
if (_totalUsersCount == -1) if (_totalUsersCount == -1)
{ {
_totalUsersCount = await _twitterUserDal.GetTwitterUsersCountAsync(); _totalUsersCount = await _twitterUserDal.GetTwitterUsersCountAsync();
var warmUpMaxCapacity = _instanceSettings.MaxUsersCapacity / 4; _warmUpIterations = (int)(_totalUsersCount / (float)WarmUpMaxCapacity);
_warmUpIterations = warmUpMaxCapacity == 0 ? 0 : (int)(_totalUsersCount / (float)warmUpMaxCapacity);
} }
// Return if warm up ended // Return if warm up ended
@ -40,7 +40,7 @@ namespace BirdsiteLive.Pipeline.Tools
// Calculate warm up value // Calculate warm up value
var maxUsers = _warmUpIterations > 0 var maxUsers = _warmUpIterations > 0
? _instanceSettings.MaxUsersCapacity / 4 ? WarmUpMaxCapacity
: _instanceSettings.MaxUsersCapacity; : _instanceSettings.MaxUsersCapacity;
_warmUpIterations--; _warmUpIterations--;
return maxUsers; return maxUsers;

View File

@ -30,17 +30,20 @@ namespace BirdsiteLive.Pipeline.Tests.Tools
var provider = new MaxUsersNumberProvider(settings, twitterUserDalMock.Object); var provider = new MaxUsersNumberProvider(settings, twitterUserDalMock.Object);
var result = await provider.GetMaxUsersNumberAsync(); var result = await provider.GetMaxUsersNumberAsync();
Assert.AreEqual(250, result); Assert.AreEqual(200, result);
result = await provider.GetMaxUsersNumberAsync(); result = await provider.GetMaxUsersNumberAsync();
Assert.AreEqual(250, result); Assert.AreEqual(200, result);
result = await provider.GetMaxUsersNumberAsync(); result = await provider.GetMaxUsersNumberAsync();
Assert.AreEqual(250, result); Assert.AreEqual(200, result);
result = await provider.GetMaxUsersNumberAsync(); result = await provider.GetMaxUsersNumberAsync();
Assert.AreEqual(250, result); Assert.AreEqual(200, result);
result = await provider.GetMaxUsersNumberAsync();
Assert.AreEqual(200, result);
result = await provider.GetMaxUsersNumberAsync(); result = await provider.GetMaxUsersNumberAsync();
Assert.AreEqual(1000, result); Assert.AreEqual(1000, result);
@ -63,7 +66,7 @@ namespace BirdsiteLive.Pipeline.Tests.Tools
var twitterUserDalMock = new Mock<ITwitterUserDal>(MockBehavior.Strict); var twitterUserDalMock = new Mock<ITwitterUserDal>(MockBehavior.Strict);
twitterUserDalMock twitterUserDalMock
.Setup(x => x.GetTwitterUsersCountAsync()) .Setup(x => x.GetTwitterUsersCountAsync())
.ReturnsAsync(249); .ReturnsAsync(199);
#endregion #endregion
var provider = new MaxUsersNumberProvider(settings, twitterUserDalMock.Object); var provider = new MaxUsersNumberProvider(settings, twitterUserDalMock.Object);