- ProgressHandler Threadsafe gemacht
- ermögliche loggen ohne progress, rein Zeitbasiert -> möglichst, sodass kein spam entsteht bzw. das reguläre Loggen berücksichtigt wird
This commit is contained in:
parent
4fc5648c4f
commit
4ed86f7420
@ -1,3 +1,5 @@
|
||||
package de.vorsorge.theo.util;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
@ -65,7 +67,7 @@ public class FabianUtil {
|
||||
}
|
||||
|
||||
|
||||
protected BigDecimal getCounter() {
|
||||
protected synchronized BigDecimal getCounter() {
|
||||
return counter;
|
||||
}
|
||||
|
||||
@ -76,7 +78,7 @@ public class FabianUtil {
|
||||
}
|
||||
|
||||
|
||||
protected void tick() {
|
||||
protected synchronized void tick() {
|
||||
counter = counter.add(BigDecimal.ONE);
|
||||
}
|
||||
|
||||
@ -87,14 +89,14 @@ public class FabianUtil {
|
||||
}
|
||||
|
||||
|
||||
public void logIf() {
|
||||
public synchronized void logIf() {
|
||||
if (counter.remainder(logDistance).signum() == 0 || isBored()) {
|
||||
log();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private boolean isBored() {
|
||||
private synchronized boolean isBored() {
|
||||
ZonedDateTime time = lastLoggedAt == null ? startTime : lastLoggedAt;
|
||||
return time.until(ZonedDateTime.now(), ChronoUnit.SECONDS) >= timeLogDistance;
|
||||
}
|
||||
@ -107,12 +109,12 @@ public class FabianUtil {
|
||||
}
|
||||
|
||||
|
||||
protected void updateLastLoggedAt() {
|
||||
protected synchronized void updateLastLoggedAt() {
|
||||
lastLoggedAt = ZonedDateTime.now();
|
||||
}
|
||||
|
||||
|
||||
protected Duration getTimePassed() {
|
||||
protected synchronized Duration getTimePassed() {
|
||||
return Duration.ofSeconds(startTime.until(ZonedDateTime.now(), ChronoUnit.SECONDS));
|
||||
}
|
||||
|
||||
@ -127,7 +129,7 @@ public class FabianUtil {
|
||||
}
|
||||
|
||||
|
||||
public void logFinal() {
|
||||
public synchronized void logFinal() {
|
||||
Duration timePassed = getTimePassed();
|
||||
System.out.println(counter + " Stück (100 %) erledigt. " + formatDuration(timePassed) + " vergangen.");
|
||||
}
|
||||
@ -178,6 +180,11 @@ public class FabianUtil {
|
||||
+ formatDuration(timePassed) + " vergangen" + remainingTimePart + ".");
|
||||
updateLastLoggedAt();
|
||||
}
|
||||
|
||||
|
||||
public void logContinuouslyTimeBased() {
|
||||
new Thread(this::logIf).start();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user