package core.aws.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.time.Duration;
/**
* @author neo
*/
public final class Threads {
private static final Logger LOGGER = LoggerFactory.getLogger(Threads.class);
public static void sleepRoughly(Duration duration) {
long milliseconds = duration.toMillis();
double times = Randoms.number(0.8, 1.2); // +/-20% random
long sleepTime = (long) (milliseconds * times);
LOGGER.info("sleep {} ms", sleepTime);
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
LOGGER.info("sleep is interrupted");
}
}
}