public void run() { LiveQueueItem currentPage = new LiveQueueItem(0, ""); LiveQueueItem lastPage = null; while (keepRunning) { try { LiveQueueItem page = LiveQueue.take(); if (page.equals(lastPage)) { logger.info( "Ignoring duplicatre page {} ({}) with priority {}", page.getItemName(), page.getItemID(), page.getPriority()); continue; } lastPage = page; currentPage = page; // If a mapping page set extractor to reload mappings and ontology if (page.getPriority() == LiveQueuePriority.MappingPriority) { LiveExtractionConfigLoader.reload(page.getStatQueueAdd()); } if (page.isDeleted() == true) { JSONCache.deleteCacheItem(page.getItemID(), LiveExtractionConfigLoader.policies()); logger.info( "Deleted page with ID: " + page.getItemID() + " (" + page.getItemName() + ")"); } else processPage(page); } catch (Exception exp) { logger.error( "Failed to process page " + currentPage.getItemID() + " reason: " + exp.getMessage(), exp); } } }