Changeset 6092 for SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Aggregator.java
- Timestamp:
- 03/10/15 14:16:28 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Aggregator.java
r6081 r6092 107 107 private static final org.slf4j.Logger log = LoggerFactory.getLogger(Aggregator.class); 108 108 109 public static final String DE_TOK_MODEL = "tokenizer/de-tuebadz-8.0-token.bin"; 109 final int SEARCHES_SIZE_GC_THRESHOLD = 1000; 110 final int SEARCHES_AGE_GC_THRESHOLD = 60; 110 111 111 112 private static final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); … … 261 262 // this function should be thread-safe 262 263 public Search startSearch(SRUVersion version, List<Corpus> corpora, 263 String searchString, String searchLang, int maxRecords) throws Exception { 264 String searchString, String searchLang, 265 int firstRecord, int maxRecords) throws Exception { 264 266 if (corpora.isEmpty()) { 265 267 // No corpora … … 270 272 } else { 271 273 Search sr = new Search(sruSearchClient, version, searchStatsAtom.get(), 272 corpora, searchString, searchLang, 1,maxRecords);273 if ( (activeSearches.size() % 100) == 0) {274 corpora, searchString, searchLang, maxRecords); 275 if (activeSearches.size() > SEARCHES_SIZE_GC_THRESHOLD) { 274 276 List<Long> toBeRemoved = new ArrayList<Long>(); 275 277 long t0 = System.currentTimeMillis(); 276 278 for (Map.Entry<Long, Search> e : activeSearches.entrySet()) { 277 if (t0 - e.getValue().getCreatedAt() > 1800 * 1000) { 279 long dtmin = (t0 - e.getValue().getCreatedAt()) / 1000 / 60; 280 if (dtmin > SEARCHES_AGE_GC_THRESHOLD) { 281 log.info("removing search " + e.getKey() + ": " + dtmin + " minutes old"); 278 282 toBeRemoved.add(e.getKey()); 279 283 }
Note: See TracChangeset
for help on using the changeset viewer.