From bab2d74665276cb3e0de3930f9d11a15683837f1 Mon Sep 17 00:00:00 2001 From: Daniel Gerhardt <daniel.gerhardt@mni.thm.de> Date: Mon, 12 May 2014 00:15:53 +0200 Subject: [PATCH] Do not clutter CouchDB with unnecessary document updates --- src/main/java/de/thm/arsnova/dao/CouchDBDao.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 53c3d4ea..5d59ae3d 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)); -- GitLab