/** * Scheduler that is updating the status every ten seconds. * * This is used by default, if no other scheduler is configured. * * @return Scheduler */ @Bean @ConditionalOnMissingBean(Scheduler.class) public Scheduler fixedDelayScheduler() { return new EveryTenSecondsScheduler( aggregator ); }
/** * Cron scheduler that updating the status using a cron expression. * * This is used if edison.status.scheduler.cron is configured. * * @return CronScheduler */ @Bean @ConditionalOnProperty(name = "edison.status.scheduler.cron") public Scheduler cronScheduler() { return new CronScheduler( aggregator ); }
@Test public void shouldDelegateStatusAggregation() throws Exception { final ApplicationStatusAggregator statusAggregator = mock(ApplicationStatusAggregator.class); when(statusAggregator.aggregatedStatus()).thenReturn(SOME_STATUS); final Scheduler scheduler = new EveryTenSecondsScheduler(statusAggregator); scheduler.update(); assertThat(statusAggregator.aggregatedStatus(), is(SOME_STATUS)); }
@Test public void shouldUpdateStatus() throws Exception { final ApplicationStatusAggregator statusAggregator = mock(ApplicationStatusAggregator.class); when(statusAggregator.aggregatedStatus()) .thenReturn(SOME_STATUS) .thenReturn(SOME_OTHER_STATUS); final Scheduler scheduler = new EveryTenSecondsScheduler(statusAggregator); // when scheduler.update(); // then assertThat(statusAggregator.aggregatedStatus(), is(SOME_STATUS)); // when scheduler.update(); // then assertThat(statusAggregator.aggregatedStatus(), is(SOME_OTHER_STATUS)); } }
/** * Scheduler that is updating the status every ten seconds. * * This is used by default, if no other scheduler is configured. * * @param applicationStatusAggregator the ApplicationStatusAggregator scheduled for updates * @return Scheduler fixed delay scheduler */ @Bean @ConditionalOnMissingBean(Scheduler.class) public Scheduler fixedDelayScheduler(final ApplicationStatusAggregator applicationStatusAggregator) { return new EveryTenSecondsScheduler( applicationStatusAggregator ); } }
/** * Cron scheduler that updating the status using a cron expression. * * This is used if edison.status.scheduler.cron is configured. * * @param applicationStatusAggregator the ApplicationStatusAggregator scheduled for updates * @return CronScheduler a cron scheduler */ @Bean @ConditionalOnProperty(name = "edison.status.scheduler.cron") public Scheduler cronScheduler(final ApplicationStatusAggregator applicationStatusAggregator) { return new CronScheduler( applicationStatusAggregator ); }