diff --git a/src/org/forkalsrud/album/web/AlbumServlet.java b/src/org/forkalsrud/album/web/AlbumServlet.java index 7747546..f1d16cf 100644 --- a/src/org/forkalsrud/album/web/AlbumServlet.java +++ b/src/org/forkalsrud/album/web/AlbumServlet.java @@ -29,6 +29,7 @@ public class AlbumServlet Cache imageCache; CacheManager cacheManager; PictureScaler pictureScaler; + long lastCacheFlushTime; @Override public void init() @@ -43,6 +44,7 @@ public class AlbumServlet cacheManager = CacheManager.create(); imageCache = cacheManager.getCache("imageCache"); pictureScaler = new PictureScaler(); + lastCacheFlushTime = System.currentTimeMillis(); } @Override @@ -177,6 +179,11 @@ public class AlbumServlet try { cimg = pictureScaler.scalePicture(file, thumbnail, size); imageCache.put(new Element(key, cimg)); + long millisSinceLastFlush = System.currentTimeMillis() - lastCacheFlushTime; + if (millisSinceLastFlush > 10 * 60 * 1000L) { + imageCache.flush(); + lastCacheFlushTime = System.currentTimeMillis(); + } System.out.println(" " + key + " added to the cache with size " + cimg.bits.length + " -- now " + imageCache.getSize() + " entries"); } catch (TimeoutException e) { res.setStatus(HttpServletResponse.SC_SERVICE_UNAVAILABLE);