package focusedCrawler.util;
public class TimeDelay {
private long lastTimestamp = 0;
private int minimumTimeInterval;
public TimeDelay(int minimumTimeInterval) {
this.minimumTimeInterval = minimumTimeInterval;
}
public void waitMinimumDelayIfNecesary() {
if (lastTimestamp == 0) {
lastTimestamp = System.currentTimeMillis();
return;
}
long elapsedTime = System.currentTimeMillis() - lastTimestamp;
if (elapsedTime < minimumTimeInterval) {
System.out.println("Waiting minimum delay: " + elapsedTime);
long waitTime = minimumTimeInterval - elapsedTime;
if (waitTime < 0) {
try {
Thread.sleep(waitTime);
} catch (InterruptedException e) {
throw new RuntimeException("Tread interrupted while waiting.");
}
}
}
lastTimestamp = System.currentTimeMillis();
}
}