From d68229885031d6409b9531a0e71dcb70665e4acb Mon Sep 17 00:00:00 2001 From: LSmyrnaios Date: Tue, 5 Apr 2022 00:13:52 +0300 Subject: [PATCH] Improve assignment of "PublicationsRetriever.threadsMultiplier", depending on the total available threads on the system. The previous assignment was not scaling well. --- .../urls_worker/plugins/PublicationsRetrieverPlugin.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/openaire/urls_worker/plugins/PublicationsRetrieverPlugin.java b/src/main/java/eu/openaire/urls_worker/plugins/PublicationsRetrieverPlugin.java index d7d7424..c4af623 100644 --- a/src/main/java/eu/openaire/urls_worker/plugins/PublicationsRetrieverPlugin.java +++ b/src/main/java/eu/openaire/urls_worker/plugins/PublicationsRetrieverPlugin.java @@ -53,8 +53,13 @@ public class PublicationsRetrieverPlugin { ConnSupportUtils.shouldBlockMost5XXDomains = false; LoaderAndChecker.setCouldRetryRegex(); - PublicationsRetriever.threadsMultiplier = 10; - int workerThreadsCount = (Runtime.getRuntime().availableProcessors() * PublicationsRetriever.threadsMultiplier); + int availableProcessors = Runtime.getRuntime().availableProcessors(); + if ( availableProcessors <= 4 ) + PublicationsRetriever.threadsMultiplier = 10; + else + PublicationsRetriever.threadsMultiplier = 6; + + int workerThreadsCount = (availableProcessors * PublicationsRetriever.threadsMultiplier); logger.info("Use " + workerThreadsCount + " worker-threads."); PublicationsRetriever.executor = Executors.newFixedThreadPool(workerThreadsCount); }