Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
This commit is contained in:
Abhishek Kumar 2024-10-11 12:12:57 +05:30
parent d0fc91ab2a
commit 7ecc173187
2 changed files with 11 additions and 8 deletions

View File

@ -38,7 +38,7 @@ import com.cloud.utils.component.AdapterBase;
public class RangeTimeBackoff extends AdapterBase implements BackoffAlgorithm {
protected static final int DEFAULT_MIN_TIME = 5;
private int minTime = DEFAULT_MIN_TIME;
private int maxTime = 3 * DEFAULT_MIN_TIME;
private int maxTime = DEFAULT_MIN_TIME;
private final Map<String, Thread> asleep = new ConcurrentHashMap<>();
private static final Logger LOG = Logger.getLogger(RangeTimeBackoff.class.getName());
@ -71,7 +71,7 @@ public class RangeTimeBackoff extends AdapterBase implements BackoffAlgorithm {
@Override
public boolean configure(String name, Map<String, Object> params) {
minTime = NumbersUtil.parseInt((String)params.get("minSeconds"), DEFAULT_MIN_TIME);
maxTime = NumbersUtil.parseInt((String)params.get("maxSeconds"), minTime * 3);
maxTime = NumbersUtil.parseInt((String)params.get("maxSeconds"), minTime);
return true;
}
}

View File

@ -43,6 +43,12 @@ public class RangeTimeBackoffTest {
Assert.assertTrue(timeTaken <= max * 1000L);
}
private void checkTimeTakenBetweenDelta(long timeTaken, int value) {
long min = (value * 1000L) - 10L;
long max = (value* 1000L) + 10L;
Assert.assertTrue(min <= timeTaken && timeTaken <= max);
}
@Test
public void testWaitEmptyValue() {
RangeTimeBackoff backoff = new RangeTimeBackoff();
@ -52,8 +58,7 @@ public class RangeTimeBackoffTest {
backoff.configure("RangeTimeBackoff", map);
long startTime = System.currentTimeMillis();
backoff.waitBeforeRetry();
long timeTaken = System.currentTimeMillis() - startTime;
Assert.assertTrue(timeTaken >= RangeTimeBackoff.DEFAULT_MIN_TIME * 1000L);
checkTimeTakenBetweenDelta(System.currentTimeMillis() - startTime, RangeTimeBackoff.DEFAULT_MIN_TIME);
}
@Test
@ -63,8 +68,7 @@ public class RangeTimeBackoffTest {
backoff.configure("RangeTimeBackoff", map);
long startTime = System.currentTimeMillis();
backoff.waitBeforeRetry();
long timeTaken = System.currentTimeMillis() - startTime;
Assert.assertTrue(timeTaken >= RangeTimeBackoff.DEFAULT_MIN_TIME * 1000L);
checkTimeTakenBetweenDelta(System.currentTimeMillis() - startTime, RangeTimeBackoff.DEFAULT_MIN_TIME);
}
@Test
@ -78,7 +82,6 @@ public class RangeTimeBackoffTest {
backoff.configure("RangeTimeBackoff", map);
long startTime = System.currentTimeMillis();
backoff.waitBeforeRetry();
long timeTaken = System.currentTimeMillis() - startTime;
Assert.assertTrue(timeTaken >= min * 1000L);
checkTimeTakenBetweenDelta(System.currentTimeMillis() - startTime, min);
}
}