diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 53c3d4ea81ad4e643102d2752202e61f9d1d9a6b..5d59ae3d9fc83a2db12c33b546481f0fc7a19440 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -387,6 +387,11 @@ public class CouchDBDao implements IDatabaseDao { } } + /* Do not clutter CouchDB. Only update once every 3 hours per session. */ + if (loggedIn.getSessionId().equals(session.get_id()) && loggedIn.getTimestamp() > System.currentTimeMillis() - 3 * 3600000) { + return loggedIn; + } + loggedIn.setUser(user.getUsername()); loggedIn.setSessionId(session.get_id()); loggedIn.addVisitedSession(session); @@ -420,6 +425,11 @@ public class CouchDBDao implements IDatabaseDao { @Override public final void updateSessionOwnerActivity(final Session session) { try { + /* Do not clutter CouchDB. Only update once every 3 hours. */ + if (session.getLastOwnerActivity() > System.currentTimeMillis() - 3 * 3600000) { + return; + } + session.setLastOwnerActivity(System.currentTimeMillis()); JSONObject json = JSONObject.fromObject(session); this.getDatabase().saveDocument(new Document(json));