From 24c9c734c009888096d38d51a79f4b974e6a6386 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 18 Sep 2013 13:39:24 +0200
Subject: [PATCH] OO-781: only update the last usage date every minute

---
 .../java/org/olat/repository/RepositoryManager.java | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/olat/repository/RepositoryManager.java b/src/main/java/org/olat/repository/RepositoryManager.java
index 23cffa66ab7..1b84b52097b 100644
--- a/src/main/java/org/olat/repository/RepositoryManager.java
+++ b/src/main/java/org/olat/repository/RepositoryManager.java
@@ -819,10 +819,17 @@ public class RepositoryManager extends BasicManager {
 	 */
 	public RepositoryEntry setLastUsageNowFor(final RepositoryEntry re) {
 		if (re == null) return null;
+		Date newUsage = new Date();
+		Date lastUsage = re.getLastUsage();
+		//update every minute and not shorter
+		if(lastUsage != null && (newUsage.getTime() - lastUsage.getTime()) < 60000) {
+			return re;
+		}
+		
 		RepositoryEntry reloadedRe = loadForUpdate(re);
-		reloadedRe.setLastUsage(new Date());
-		RepositoryEntry updatedRe = DBFactory.getInstance().getCurrentEntityManager().merge(reloadedRe);
-		DBFactory.getInstance().commit();
+		reloadedRe.setLastUsage(newUsage);
+		RepositoryEntry updatedRe = dbInstance.getCurrentEntityManager().merge(reloadedRe);
+		dbInstance.commit();
 		return updatedRe;
 	}
 
-- 
GitLab