Browse Source

fix #414 : .crawler cleanup process improvement

Shinsuke Sugaya 9 năm trước cách đây
mục cha
commit
00e40013ef

+ 10 - 6
src/main/java/org/codelibs/fess/helper/WebFsIndexHelper.java

@@ -33,9 +33,9 @@ import org.codelibs.fess.app.service.WebConfigService;
 import org.codelibs.fess.crawler.Crawler;
 import org.codelibs.fess.crawler.Crawler;
 import org.codelibs.fess.crawler.CrawlerContext;
 import org.codelibs.fess.crawler.CrawlerContext;
 import org.codelibs.fess.crawler.interval.FessIntervalController;
 import org.codelibs.fess.crawler.interval.FessIntervalController;
-import org.codelibs.fess.crawler.service.DataService;
-import org.codelibs.fess.crawler.service.UrlFilterService;
-import org.codelibs.fess.crawler.service.UrlQueueService;
+import org.codelibs.fess.crawler.service.impl.EsDataService;
+import org.codelibs.fess.crawler.service.impl.EsUrlFilterService;
+import org.codelibs.fess.crawler.service.impl.EsUrlQueueService;
 import org.codelibs.fess.es.config.exentity.FileConfig;
 import org.codelibs.fess.es.config.exentity.FileConfig;
 import org.codelibs.fess.es.config.exentity.WebConfig;
 import org.codelibs.fess.es.config.exentity.WebConfig;
 import org.codelibs.fess.indexer.IndexUpdater;
 import org.codelibs.fess.indexer.IndexUpdater;
@@ -469,27 +469,31 @@ public class WebFsIndexHelper implements Serializable {
         crawlingInfoHelper.putToInfoMap(Constants.WEB_FS_INDEX_EXEC_TIME, Long.toString(indexUpdater.getExecuteTime()));
         crawlingInfoHelper.putToInfoMap(Constants.WEB_FS_INDEX_EXEC_TIME, Long.toString(indexUpdater.getExecuteTime()));
         crawlingInfoHelper.putToInfoMap(Constants.WEB_FS_INDEX_SIZE, Long.toString(indexUpdater.getDocumentSize()));
         crawlingInfoHelper.putToInfoMap(Constants.WEB_FS_INDEX_SIZE, Long.toString(indexUpdater.getDocumentSize()));
 
 
+        final EsUrlFilterService urlFilterService = SingletonLaContainer.getComponent(EsUrlFilterService.class);
+        final EsUrlQueueService urlQueueService = SingletonLaContainer.getComponent(EsUrlQueueService.class);
+        final EsDataService dataService = SingletonLaContainer.getComponent(EsDataService.class);
         for (final String sid : sessionIdList) {
         for (final String sid : sessionIdList) {
             // remove config
             // remove config
             crawlingConfigHelper.remove(sid);
             crawlingConfigHelper.remove(sid);
 
 
             try {
             try {
                 // clear url filter
                 // clear url filter
-                SingletonLaContainer.getComponent(UrlFilterService.class).delete(sid);
+                urlFilterService.delete(sid);
             } catch (Exception e) {
             } catch (Exception e) {
                 logger.warn("Failed to delete UrlFilter for " + sid, e);
                 logger.warn("Failed to delete UrlFilter for " + sid, e);
             }
             }
 
 
             try {
             try {
                 // clear queue
                 // clear queue
-                SingletonLaContainer.getComponent(UrlQueueService.class).delete(sid);
+                urlQueueService.clearCache();
+                urlQueueService.delete(sid);
             } catch (Exception e) {
             } catch (Exception e) {
                 logger.warn("Failed to delete UrlQueue for " + sid, e);
                 logger.warn("Failed to delete UrlQueue for " + sid, e);
             }
             }
 
 
             try {
             try {
                 // clear
                 // clear
-                SingletonLaContainer.getComponent(DataService.class).delete(sid);
+                dataService.delete(sid);
             } catch (Exception e) {
             } catch (Exception e) {
                 logger.warn("Failed to delete AccessResult for " + sid, e);
                 logger.warn("Failed to delete AccessResult for " + sid, e);
             }
             }