summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
diff options
context:
space:
mode:
authorSimon Rettberg2017-03-03 12:08:54 +0100
committerSimon Rettberg2017-03-03 12:08:54 +0100
commitf1a056e7fed96bdaf27c154f47e17efb1eb6a9ab (patch)
tree9fe69322ad39796b312341e0b693f9aed5b3de30 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
parent[server] Implement getSupportedFeatures() (diff)
downloadtutor-module-f1a056e7fed96bdaf27c154f47e17efb1eb6a9ab.tar.gz
tutor-module-f1a056e7fed96bdaf27c154f47e17efb1eb6a9ab.tar.xz
tutor-module-f1a056e7fed96bdaf27c154f47e17efb1eb6a9ab.zip
[client] Don't update server storage space too often if user is inactive
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java70
1 files changed, 38 insertions, 32 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
index 5fbfbd41..68150210 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
@@ -514,6 +514,7 @@ public abstract class MainWindow {
QuickTimer.scheduleAtFixedDelay(new Task() {
private int failures = 0;
private int ignoreCount = 0;
+ private String remoteString = "";
private boolean timeDiffChecked = false;
@Override
@@ -522,47 +523,52 @@ public abstract class MainWindow {
long maxMemory = rt.maxMemory();
long totalMemory = rt.totalMemory();
long usedMemory = totalMemory - rt.freeMemory();
- String txt = "[" + FormatHelper.bytes(usedMemory, false) + "/"
+ String txt = "[JVM: " + FormatHelper.bytes(usedMemory, false) + "/"
+ FormatHelper.bytes(totalMemory, false);
if (maxMemory != Long.MAX_VALUE) {
txt += ", Limit: " + FormatHelper.bytes(maxMemory, false);
}
txt += "]";
- if (Session.getUserId() != null) {
- if (ignoreCount > 0) {
- ignoreCount -= 1;
- } else {
- try {
- SatelliteStatus status = ThriftManager.getSatClient().getStatus();
- failures = 0;
- txt += " [" + FormatHelper.bytes(status.availableStorageBytes, false) + "]";
- if (!timeDiffChecked) {
- final long now = System.currentTimeMillis() / 1000;
- final long diffSecs = Math.abs(now - status.serverTime);
- LOGGER.debug("Clock diff client<->server: " + diffSecs + "s");
- timeDiffChecked = true;
- if (diffSecs > TimeUnit.MINUTES.toMillis(10)) {
- Gui.asyncMessageBox(
- "ACHTUNG: Die Uhrzeit Ihres Computers weicht von der Uhrzeit auf dem Satellitenserver ab.\n"
- + "Bitte stellen Sie sicher, dass die Uhr Ihres Computers richtig gestellt ist.\n"
- + "Falls Ihre Sytemzeit korrekt gesetzt ist, ist möglicherweise die Uhrzeit auf\n"
- + "dem Satellitenserver nicht korrekt eingestellt.\n"
- + "In diesem Fall kann es - je nach Abweichung - zu unerwarteten Problemen mit den\n"
- + "Start- und Endzeiten von Veranstaltungen kommen. Kontaktieren Sie in diesem\n"
- + "Fall den zuständigen Administrator, damit die Uhrzeit auf dem Satellitenserver\n"
- + "korrigiert werden kann.\n\n" + "Ihr Computer: "
- + FormatHelper.longDate(now) + "\nSatelliten-Server: "
- + FormatHelper.longDate(status.serverTime),
- MessageType.WARNING, LOGGER, null);
- }
+ if (ignoreCount > 0) {
+ ignoreCount -= 1;
+ } else if (Session.getUserId() != null) {
+ try {
+ SatelliteStatus status = ThriftManager.getSatClient().getStatus();
+ failures = 0;
+ remoteString = " [Store: " + FormatHelper.bytes(status.availableStorageBytes, false) + "]";
+ if (!timeDiffChecked) {
+ final long now = System.currentTimeMillis() / 1000;
+ final long diffSecs = Math.abs(now - status.serverTime);
+ LOGGER.debug("Clock diff client<->server: " + diffSecs + "s");
+ timeDiffChecked = true;
+ if (diffSecs > TimeUnit.MINUTES.toMillis(10)) {
+ Gui.asyncMessageBox(
+ "ACHTUNG: Die Uhrzeit Ihres Computers weicht von der Uhrzeit auf dem Satellitenserver ab.\n"
+ + "Bitte stellen Sie sicher, dass die Uhr Ihres Computers richtig gestellt ist.\n"
+ + "Falls Ihre Sytemzeit korrekt gesetzt ist, ist möglicherweise die Uhrzeit auf\n"
+ + "dem Satellitenserver nicht korrekt eingestellt.\n"
+ + "In diesem Fall kann es - je nach Abweichung - zu unerwarteten Problemen mit den\n"
+ + "Start- und Endzeiten von Veranstaltungen kommen. Kontaktieren Sie in diesem\n"
+ + "Fall den zuständigen Administrator, damit die Uhrzeit auf dem Satellitenserver\n"
+ + "korrigiert werden kann.\n\n" + "Ihr Computer: "
+ + FormatHelper.longDate(now) + "\nSatelliten-Server: "
+ + FormatHelper.longDate(status.serverTime),
+ MessageType.WARNING, LOGGER, null);
}
- } catch (TException e) {
- failures += 1;
- ignoreCount = Math.min(10, failures / 3);
}
+ // If user is not active and no upload is running, only update the value once a minute
+ // TODO: Count active uploads
+ long inactiveMins = (System.currentTimeMillis() - Gui.getLastUserActivityMillis()) / 60000l;
+ if (inactiveMins > 10 && UploadTask.getNumberOfUploads() == 0) {
+ ignoreCount = 30;
+ }
+ } catch (TException e) {
+ failures += 1;
+ ignoreCount = Math.min(10, failures / 3);
+ remoteString = " [Store: ???]";
}
}
- final String labelText = txt;
+ final String labelText = txt + remoteString;
Gui.asyncExec(new Runnable() {
@Override
public void run() {