@PostConstruct public void scheduleTasks() { if (Boolean.parseBoolean(enabled)) { LakeviewFileUpdater updater = new LakeviewFileUpdater( lakeviewContentFetcher(), lakeviewFeedCompiler(), lakeviewFeedOutputter(), FILENAME_PROVIDER_ID, SCHEMA_VERSION, lakeviewAzureUploader(), new SystemClock(), log); scheduler.schedule(updater.withName("Lakeview Azure updater"), LAKEVIEW_UPLOAD); } }
@Override public void configure() { MongoChannelGroupStore channelGroupStore = new MongoChannelGroupStore(mongo()); MongoLookupEntryStore lookupEntryStore = contentLookupEntryStore(); MongoContentResolver contentResolver = contentResolver(); BroadcastBooster booster = new ChannelGroupBroadcastChannelBooster( mongoChannelGroupStore(), channelResolver(), priorityChannelGroup); CachingChannelStore channelStore = new CachingChannelStore( new MongoChannelStore(mongo(), channelGroupStore, channelGroupStore)); SimpleScheduler simplescheduler = new SimpleScheduler(); channelStore.start(); LuceneContentIndex index = new LuceneContentIndex( new File(luceneDir), contentResolver, booster, channelStore, backupDirectory); IndexBackupScheduledTask indexBackupTask = new IndexBackupScheduledTask(index); simplescheduler.schedule(indexBackupTask, RepetitionRules.every(Duration.standardHours(24))); Builder<HealthProbe> probes = ImmutableList.builder(); ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(3); ReloadingContentBootstrapper mongoBootstrapper = new ReloadingContentBootstrapper( index, mongoBootstrapper(), scheduler, Boolean.valueOf(luceneIndexAtStartup), 180, TimeUnit.MINUTES); probes.add(new LuceneSearcherProbe("mongo-lucene", mongoBootstrapper)); ReloadingContentBootstrapper cassandraBootstrapper = null; if (Boolean.valueOf(enableCassandra)) { cassandraBootstrapper = new ReloadingContentBootstrapper( index, cassandraBootstrapper(), scheduler, Boolean.valueOf(luceneIndexAtStartup), 7, TimeUnit.DAYS); probes.add(new LuceneSearcherProbe("cassandra-lucene", cassandraBootstrapper)); } ReloadingContentBootstrapper musicBootStrapper = null; if (Boolean.valueOf(enableMusic)) { musicBootStrapper = new ReloadingContentBootstrapper( index, musicBootstrapper(), scheduler, true, 120, TimeUnit.MINUTES); probes.add(new LuceneSearcherProbe("mongo-music", musicBootStrapper)); } bind("/system/health", new HealthController(probes.build())); bind("/titles", new SearchServlet(new JsonSearchResultsView(), index)); bind("/debug/document", new DocumentController(index)); bind( "/index", new ContentIndexController( new LookupResolvingContentResolver(contentResolver, lookupEntryStore), index)); bind("/system/backup", new BackupController(index)); mongoBootstrapper.startAsync(); if (cassandraBootstrapper != null) { cassandraBootstrapper.startAsync(); } if (musicBootStrapper != null) { musicBootStrapper.startAsync(); } }