From a93c6ee6e0589d30a3c9f3f4c1b3dff48f9494ab Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 29 Sep 2014 15:06:11 +0200 Subject: [PATCH] OO-1223: directly start the indexer if the cron job is disabled --- .../org/olat/search/_spring/searchContext.xml | 1 + .../search/service/SearchServiceImpl.java | 25 +++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/olat/search/_spring/searchContext.xml b/src/main/java/org/olat/search/_spring/searchContext.xml index 947ff98cd6f..cbaf19b0680 100644 --- a/src/main/java/org/olat/search/_spring/searchContext.xml +++ b/src/main/java/org/olat/search/_spring/searchContext.xml @@ -25,6 +25,7 @@ <property name="lifeIndexer" ref="jmsIndexer"/> <property name="metadataFields" ref="SearchMetadataFieldsProvider" /> <property name="searchExecutor" ref="searchExecutor" /> + <property name="indexerCron" value="${search.indexing.cronjob}" /> </bean> <bean id="searchExecutor" class="org.springframework.core.task.support.ExecutorServiceAdapter"> diff --git a/src/main/java/org/olat/search/service/SearchServiceImpl.java b/src/main/java/org/olat/search/service/SearchServiceImpl.java index 17d239355fa..7b58251dad0 100644 --- a/src/main/java/org/olat/search/service/SearchServiceImpl.java +++ b/src/main/java/org/olat/search/service/SearchServiceImpl.java @@ -101,6 +101,7 @@ public class SearchServiceImpl implements SearchService, GenericEventListener { private SearchSpellChecker searchSpellChecker; private String indexPath; private String permanentIndexPath; + private String indexerCron; /** Counts number of search queries since last restart. */ private long queryCount = 0; @@ -152,6 +153,14 @@ public class SearchServiceImpl implements SearchService, GenericEventListener { this.lifeIndexer = lifeIndexer; } + /** + * [used by Spring] + * @param indexerCron + */ + public void setIndexerCron(String indexerCron) { + this.indexerCron = indexerCron; + } + protected MainIndexer getMainIndexer() { return mainIndexer; } @@ -169,7 +178,13 @@ public class SearchServiceImpl implements SearchService, GenericEventListener { try { JobDetail detail = scheduler.getJobDetail("org.olat.search.job.enabled", Scheduler.DEFAULT_GROUP); - scheduler.triggerJob(detail.getName(), detail.getGroup()); + if(detail == null) { + if("disabled".equals(indexerCron)) { + indexer.startFullIndex(); + } + } else { + scheduler.triggerJob(detail.getName(), detail.getGroup()); + } log.info("startIndexing..."); } catch (SchedulerException e) { log.error("Error trigerring the indexer job: ", e); @@ -185,7 +200,13 @@ public class SearchServiceImpl implements SearchService, GenericEventListener { try { JobDetail detail = scheduler.getJobDetail("org.olat.search.job.enabled", Scheduler.DEFAULT_GROUP); - scheduler.interrupt(detail.getName(), detail.getGroup()); + if(detail == null) { + if("disabled".equals(indexerCron)) { + indexer.stopFullIndex(); + } + } else { + scheduler.interrupt(detail.getName(), detail.getGroup()); + } log.info("stopIndexing."); } catch (SchedulerException e) { log.error("Error interrupting the indexer job: ", e); -- GitLab