(screenshot-capture-tool) Make screenshot bot spend time refreshing old screenshots instead of always capturing new ones

This commit is contained in:
Viktor Lofgren 2024-07-31 20:21:23 +02:00
parent f19148132a
commit 02b1c4b172

View File

@ -16,6 +16,7 @@ import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.Duration;
import java.util.ArrayList;
@ -137,16 +138,32 @@ public class ScreenshotCaptureToolMain {
List<EdgeDomain> ret = new ArrayList<>(queueSize);
try (var conn = ds.getConnection(); var stmt = conn.createStatement()) {
var rsp = stmt.executeQuery(
int newCount = queueSize / 4;
int oldCount = queueSize - newCount;
ResultSet rst = stmt.executeQuery(
"""
SELECT EC_DOMAIN.DOMAIN_NAME FROM EC_DOMAIN
LEFT JOIN DATA_DOMAIN_HISTORY ON EC_DOMAIN.DOMAIN_NAME=DATA_DOMAIN_HISTORY.DOMAIN_NAME
ORDER BY SCREENSHOT_DATE IS NULL DESC, SCREENSHOT_DATE, INDEXED DESC
LIMIT
""" + queueSize);
while (rsp.next()) {
ret.add(new EdgeDomain(rsp.getString(1)));
""" + newCount);
while (rst.next()) {
ret.add(new EdgeDomain(rst.getString(1)));
}
rst = stmt.executeQuery("""
SELECT DATA_DOMAIN_HISTORY.DOMAIN_NAME FROM DATA_DOMAIN_HISTORY
INNER JOIN DATA_DOMAIN_SCREENSHOT ON DATA_DOMAIN_SCREENSHOT.DOMAIN_NAME = DATA_DOMAIN_HISTORY.DOMAIN_NAME
WHERE SCREENSHOT_DATE IS NOT NULL
ORDER BY SCREENSHOT_DATE ASC
""" + oldCount);
while (rst.next()) {
ret.add(new EdgeDomain(rst.getString(1)));
}
}
catch (Exception ex) {
logger.warn("Exception in fetching queue", ex);