From 13b08aca349002bcf967bf171546225c2b497462 Mon Sep 17 00:00:00 2001 From: Chris Malloy Date: Tue, 18 Jul 2023 16:37:31 -0300 Subject: [PATCH] Periodically clear failed cache items --- src/main/java/jasper/component/WebScraper.java | 6 ++++++ src/main/java/jasper/repository/WebRepository.java | 3 +++ 2 files changed, 9 insertions(+) diff --git a/src/main/java/jasper/component/WebScraper.java b/src/main/java/jasper/component/WebScraper.java index ac6b342c..01de281e 100644 --- a/src/main/java/jasper/component/WebScraper.java +++ b/src/main/java/jasper/component/WebScraper.java @@ -34,6 +34,7 @@ import java.util.Set; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; import static com.fasterxml.jackson.databind.node.TextNode.valueOf; import static jasper.domain.proj.Tag.hasMedia; @@ -681,6 +682,11 @@ public void drainAsyncScrape() { scraping.clear(); } + @Scheduled(fixedDelay = 5, timeUnit = TimeUnit.MINUTES) + public void clearFailed() { + webRepository.deleteAllByDataIsNullAndMimeIsNull(); + } + @Timed(value = "jasper.webscrape") public Web fetch(String url) { url = fixUrl(url); diff --git a/src/main/java/jasper/repository/WebRepository.java b/src/main/java/jasper/repository/WebRepository.java index d299580a..5ce81dda 100644 --- a/src/main/java/jasper/repository/WebRepository.java +++ b/src/main/java/jasper/repository/WebRepository.java @@ -3,7 +3,10 @@ import jasper.domain.Web; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; @Repository +@Transactional public interface WebRepository extends JpaRepository { + void deleteAllByDataIsNullAndMimeIsNull(); }