Skip to content
Snippets Groups Projects
Commit a93c6ee6 authored by srosse's avatar srosse
Browse files

OO-1223: directly start the indexer if the cron job is disabled

parent edb40f14
No related branches found
No related tags found
No related merge requests found
......@@ -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">
......
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment