Skip to content

Commit 8bb41f7

Browse files
committed
update filter logic and av. check
1 parent 474b45b commit 8bb41f7

3 files changed

Lines changed: 7 additions & 11 deletions

File tree

src/main/java/de/mediathekview/mserver/base/utils/CheckUrlAvailability.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import de.mediathekview.mserver.daten.Film;
1212
import de.mediathekview.mserver.daten.Filmlist;
13-
import de.mediathekview.mserver.daten.Resolution;
1413
import de.mediathekview.mserver.daten.Sender;
1514
import de.mediathekview.mserver.base.utils.FileSizeDeterminer.ResponseInfo;
1615

src/main/java/de/mediathekview/mserver/base/utils/FilmDBService.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -142,20 +142,18 @@ public <T> List<T> filterNewVideos(List<T> videos, Function<T, String> idExtract
142142
}
143143
try {
144144
List<Future<List<T>>> futures = new ArrayList<>();
145-
145+
// sort to avoid deadlocks
146146
List<T> allVideos = videos.stream()
147147
.sorted(Comparator.comparing(idExtractor))
148148
.toList();
149-
150149
for (int i = 0; i < allVideos.size(); i += batchSize) {
151150
int from = i;
152151
int to = Math.min(i + batchSize, allVideos.size());
153152
List<T> batch = allVideos.subList(from, to);
154-
155153
futures.add(executorService.submit(() -> {
156154
List<T> newVideos = new ArrayList<>();
157-
158-
String sql = "UPDATE filme SET last_seen = now() WHERE id = ?";
155+
// update every 7 days
156+
String sql = "UPDATE filme SET last_seen = now() WHERE id = ? AND last_seen - last_update <= interval '7' DAY";
159157

160158
try (Connection con = dataSource.getConnection(); PreparedStatement ps = con.prepareStatement(sql)) {
161159

@@ -266,12 +264,11 @@ private int saveBatch(List<Film> films) throws SQLException, IOException {
266264
int successCounter = 0;
267265

268266
String sql = """
269-
INSERT INTO filme (id, data, created_at, last_update)
270-
VALUES (?, ?::jsonb, now(), now())
267+
INSERT INTO filme (id, data)
268+
VALUES (?, ?::jsonb)
271269
ON CONFLICT (id) DO UPDATE
272270
SET data = EXCLUDED.data,
273-
last_update = now(),
274-
created_at = filme.created_at
271+
last_update = now()
275272
""";
276273

277274
try (Connection con = dataSource.getConnection(); PreparedStatement ps = con.prepareStatement(sql)) {

src/main/java/de/mediathekview/mserver/ui/config/MServerExecutionFlow.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ void importFilmlistIntoDB() {
105105
}
106106
void checkAvailability() {
107107
FilmDBService filmDBService = new FilmDBService(manager.getExecutorService(), 2000);
108-
String condition = "where last_url_check IS NULL OR last_url_check < NOW() - INTERVAL '1 DAY'";
108+
String condition = "WHERE last_url_check < NOW() - INTERVAL '3' DAY LIMIT 400000";
109109
Optional<Filmlist> dbFilmlist = filmDBService.readFilmlistFromDB(condition);
110110
dbFilmlist.ifPresent(filmlist -> manager.getFilmlist().addAllFilms(filmlist.getFilms().values()));
111111
CheckUrlAvailability checkUrlAvailability = new CheckUrlAvailability(

0 commit comments

Comments
 (0)