package sagan; import sagan.blog.support.PublishedBlogPostsIndexer; import sagan.docs.support.ProjectDocumentationIndexer; import sagan.guides.support.GettingStartedGuideIndexer; import sagan.guides.support.TutorialIndexer; import sagan.guides.support.UnderstandingDocIndexer; import sagan.projects.support.ProjectPagesIndexer; import sagan.staticpage.support.StaticPageIndexer; import sagan.tools.support.ToolsIndexer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component class IndexScheduler { private static final long ONE_HOUR = 1000 * 60 * 60; private static final long ONE_DAY = ONE_HOUR * 24; @Autowired private ProjectDocumentationIndexer projectDocumentationIndexer; @Autowired private GettingStartedGuideIndexer gettingStartedGuideIndexer; @Autowired private IndexerService indexerService; @Autowired private ToolsIndexer toolsIndexer; @Autowired private StaticPageIndexer staticPageIndexer; @Autowired private UnderstandingDocIndexer understandingGuideIndexer; @Autowired private TutorialIndexer tutorialIndexer; @Autowired private PublishedBlogPostsIndexer publishedBlogPostsIndexer; @Autowired private ProjectPagesIndexer projectPagesIndexer; @Scheduled(fixedDelay = ONE_HOUR, initialDelayString = "${search.indexer.delay:0}") public void indexGettingStartedGuides() { indexerService.index(gettingStartedGuideIndexer); } @Scheduled(fixedDelay = ONE_HOUR, initialDelayString = "${search.indexer.delay:0}") public void indexUnderstandingGuides() { indexerService.index(understandingGuideIndexer); } @Scheduled(fixedDelay = ONE_HOUR, initialDelayString = "${search.indexer.delay:0}") public void indexTutorials() { indexerService.index(tutorialIndexer); } @Scheduled(fixedDelay = ONE_DAY, initialDelayString = "${search.indexer.delay:0}") public void indexTools() { indexerService.index(toolsIndexer); } @Scheduled(fixedDelay = ONE_DAY, initialDelayString = "${search.indexer.delay:0}") public void indexStaticPages() { indexerService.index(staticPageIndexer); } @Scheduled(fixedDelay = ONE_DAY, initialDelayString = "${search.indexer.delay:0}") public void indexProjectDocumentation() { indexerService.index(projectDocumentationIndexer); } @Scheduled(fixedDelay = ONE_DAY, initialDelayString = "${search.indexer.delay:0}") public void indexProjectPages() { indexerService.index(projectPagesIndexer); } @Scheduled(fixedDelay = ONE_DAY, initialDelayString = "${search.indexer.delay:0}") public void indexPublishedBlogPosts() { indexerService.index(publishedBlogPostsIndexer); } }