Skip to content

Commit f3a21d5

Browse files
mnoman09NomanShoaibmikechu-optimizely
authored
[FSSDK-9526] refact: Implements a warning log for polling interval less than 30s (#365)
* Added warn log if the interval is set to less than 30 --------- Co-authored-by: NomanShoaib <[email protected]> Co-authored-by: Mike Chu <[email protected]>
1 parent 8c7847f commit f3a21d5

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

OptimizelySDK.Tests/ConfigTest/PollingProjectConfigManagerTest.cs

+19
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,25 @@ public void TestTimedoutOnlyIfSchedulerStarted()
139139
configManager.Dispose();
140140
}
141141

142+
[Test]
143+
public void TestWarnLogIfPollingTimeIsLessThanThirty()
144+
{
145+
var below30Seconds = TimeSpan.FromSeconds(29);
146+
_ = new TestPollingProjectConfigManager(below30Seconds,
147+
TimeSpan.FromSeconds(10), true, LoggerMock.Object, new int[] { });
148+
LoggerMock.Verify(l => l.Log(LogLevel.WARN,
149+
"Polling intervals below 30 seconds are not recommended."), Times.Once);
150+
}
151+
[Test]
152+
public void TestWarnLogNotTriggeredIfPollingTimeIsGreaterThanThirty()
153+
{
154+
var above30Seconds = TimeSpan.FromMinutes(1);
155+
_ = new TestPollingProjectConfigManager(above30Seconds,
156+
TimeSpan.FromMilliseconds(10), true, LoggerMock.Object, new int[] { });
157+
LoggerMock.Verify(l => l.Log(LogLevel.WARN,
158+
"Polling intervals below 30 seconds are not recommended."), Times.Never);
159+
}
160+
142161
[Test]
143162
public void TestDontTimedoutIfSchedulerNotStarted()
144163
{

OptimizelySDK/Config/PollingProjectConfigManager.cs

+4
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ public PollingProjectConfigManager(TimeSpan period, TimeSpan blockingTimeout,
6565
Logger = logger;
6666
ErrorHandler = errorHandler;
6767
BlockingTimeout = blockingTimeout;
68+
if (period.TotalSeconds < 30)
69+
{
70+
Logger?.Log(LogLevel.WARN, "Polling intervals below 30 seconds are not recommended.");
71+
}
6872
PollingInterval = period;
6973
AutoUpdate = autoUpdate;
7074

0 commit comments

Comments
 (0)