...
|
...
|
@@ -6,8 +6,6 @@ import com.yohomars.search.utils.ISearchConstans; |
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.ApplicationEventPublisher;
|
|
|
import org.springframework.context.ApplicationEventPublisherAware;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
...
|
...
|
@@ -15,56 +13,48 @@ import org.springframework.stereotype.Component; |
|
|
* 定时任务
|
|
|
*/
|
|
|
@Component
|
|
|
public class IndexRebuildJob implements ApplicationEventPublisherAware{
|
|
|
public class IndexRebuildJob {
|
|
|
|
|
|
@Autowired
|
|
|
private IYohoIndexService yohoIndexService;
|
|
|
@Autowired
|
|
|
private RebuildFlagService rebuildFlagService;
|
|
|
@Autowired
|
|
|
private IYohoIndexService yohoIndexService;
|
|
|
@Autowired
|
|
|
private RebuildFlagService rebuildFlagService;
|
|
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(IndexRebuildJob.class);
|
|
|
|
|
|
private ApplicationEventPublisher publisher;
|
|
|
private static final Logger logger = LoggerFactory.getLogger(IndexRebuildJob.class);
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 定时任务重建所有索引
|
|
|
*/
|
|
|
@Scheduled(cron="0 0 3 * * ?")
|
|
|
public void execute() {
|
|
|
long begin = System.currentTimeMillis();
|
|
|
logger.info("indexRebuildJob execute start----[begin={}]", begin);
|
|
|
this.rebuildIndex(ISearchConstans.INDEX_NAME_BIZAREA);
|
|
|
this.rebuildIndex(ISearchConstans.INDEX_NAME_COMMENT);
|
|
|
this.rebuildIndex(ISearchConstans.INDEX_NAME_LINE);
|
|
|
this.rebuildIndex(ISearchConstans.INDEX_NAME_STORE);
|
|
|
this.rebuildIndex(ISearchConstans.INDEX_NAME_TOPIC);
|
|
|
logger.info("indexRebuildJob execute end----[end={}][cost={}ms]", System.currentTimeMillis(), (System.currentTimeMillis() - begin));
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 重建索引
|
|
|
* @param indexName
|
|
|
/**
|
|
|
* 定时任务重建所有索引
|
|
|
*/
|
|
|
@Scheduled(cron = "0 0/2 * * * ? ")
|
|
|
public void execute() {
|
|
|
long begin = System.currentTimeMillis();
|
|
|
logger.info("indexRebuildJob execute start----[begin={}]", begin);
|
|
|
this.rebuildIndex(ISearchConstans.INDEX_NAME_BIZAREA);
|
|
|
this.rebuildIndex(ISearchConstans.INDEX_NAME_COMMENT);
|
|
|
this.rebuildIndex(ISearchConstans.INDEX_NAME_LINE);
|
|
|
this.rebuildIndex(ISearchConstans.INDEX_NAME_STORE);
|
|
|
this.rebuildIndex(ISearchConstans.INDEX_NAME_TOPIC);
|
|
|
logger.info("indexRebuildJob execute end----[end={}][cost={}ms]", System.currentTimeMillis(), (System.currentTimeMillis() - begin));
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 重建索引
|
|
|
*
|
|
|
* @param indexName
|
|
|
*/
|
|
|
private void rebuildIndex(String indexName) {
|
|
|
try {
|
|
|
long begin = System.currentTimeMillis();
|
|
|
logger.info("rebuild index start----[indexName={}][begin={}]", indexName, begin);
|
|
|
rebuildFlagService.waitingRebuildingIndex();
|
|
|
yohoIndexService.rebuild(indexName);
|
|
|
logger.info("rebuild index end----[indexName={}][end={}][cost={}ms]", indexName, System.currentTimeMillis(), (System.currentTimeMillis() - begin));
|
|
|
} catch (Exception e) {
|
|
|
// publisher.publishEvent(new SearchEvent(EventReportEnum.INDEXREBUILDJOB_REBUILDINDEXWITHLOG.getEventName(),
|
|
|
// EventReportEnum.INDEXREBUILDJOB_REBUILDINDEXWITHLOG.getFunctionName(),
|
|
|
// EventReportEnum.INDEXREBUILDJOB_REBUILDINDEXWITHLOG.getMoudleName(),"exception",IgnoreSomeException.filterSomeException(e),null));
|
|
|
logger.error(e.getMessage(), e);
|
|
|
}
|
|
|
}
|
|
|
private void rebuildIndex(String indexName) {
|
|
|
try {
|
|
|
long begin = System.currentTimeMillis();
|
|
|
logger.info("rebuild index start----[indexName={}][begin={}]", indexName, begin);
|
|
|
rebuildFlagService.waitingRebuildingIndex();
|
|
|
yohoIndexService.rebuild(indexName);
|
|
|
logger.info("rebuild index end----[indexName={}][end={}][cost={}ms]", indexName, System.currentTimeMillis(), (System.currentTimeMillis() - begin));
|
|
|
} catch (Exception e) {
|
|
|
logger.error(e.getMessage(), e);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
|
|
|
this.publisher = applicationEventPublisher;
|
|
|
}
|
|
|
|
|
|
} |
...
|
...
|
|