diff --git a/src/main/java/eu/openaire/urls_controller/services/UrlsServiceImpl.java b/src/main/java/eu/openaire/urls_controller/services/UrlsServiceImpl.java index 7620bdf..24add38 100644 --- a/src/main/java/eu/openaire/urls_controller/services/UrlsServiceImpl.java +++ b/src/main/java/eu/openaire/urls_controller/services/UrlsServiceImpl.java @@ -87,8 +87,8 @@ public class UrlsServiceImpl implements UrlsService { // Create the Assignments from the id-urls stored in the database up to the < assignmentsLimit >. String findAssignmentsQuery = "select pubid, url, datasourceid, datasourcename\n" + - "from (select distinct pubid, url, datasourceid, datasourcename, attempt_count\n" + - " from (select p.id as pubid, pu.url as url, d.id as datasourceid, d.name as datasourcename, attempts.counts as attempt_count\n" + + "from (select distinct pubid, url, datasourceid, datasourcename, attempt_count, pub_year\n" + + " from (select p.id as pubid, p.year as pub_year, pu.url as url, d.id as datasourceid, d.name as datasourcename, attempts.counts as attempt_count\n" + " from " + ImpalaConnector.databaseName + ".publication p\n" + " join " + ImpalaConnector.databaseName + ".publication_urls pu on pu.id=p.id\n" + " join " + ImpalaConnector.databaseName + ".datasource d on d.id=p.datasourceid\n" + @@ -106,10 +106,11 @@ public class UrlsServiceImpl implements UrlsService { " and pu.url != '' and pu.url is not null\n" + // Some IDs have empty-string urls, there are no "null" urls, but keep the relevant check for future-proofing. " limit " + (assignmentsLimit * 10) + ")\n" + " as non_distinct_results\n" + - " order by coalesce(attempt_count, 0), reverse(pubid), url\n" + + " order by coalesce(attempt_count, 0), coalesce(pub_year, 0) desc, reverse(pubid), url\n" + " limit " + assignmentsLimit + ")\n" + "as findAssignmentsQuery"; + // The "order by" in the end makes sure the older attempted records will be re-attempted after a long time. //logger.debug("findAssignmentsQuery:\n" + findAssignmentsQuery); // DEBUG!