Skip to content

Instantly share code, notes, and snippets.

@lankydan
Created February 4, 2018 21:42
Show Gist options
  • Save lankydan/2851c5c7a7fd352b4265ae1806eee969 to your computer and use it in GitHub Desktop.
Save lankydan/2851c5c7a7fd352b4265ae1806eee969 to your computer and use it in GitHub Desktop.
Scheduling - Using cron property
@Component
public class AverageMonitor {
private static final Logger LOG = LoggerFactory.getLogger(AverageMonitor.class);
private final EventRepository eventRepository;
private final AverageRepository averageRepository;
public AverageMonitor(
final EventRepository eventRepository, final AverageRepository averageRepository) {
this.eventRepository = eventRepository;
this.averageRepository = averageRepository;
}
@Scheduled(cron = "0/20 * * * * ?")
public void publish() {
final double average =
eventRepository.getAverageValueGreaterThanStartTime(
"An event type", LocalDateTime.now().minusSeconds(20));
averageRepository.save(
new Average(new AverageKey("An event type", LocalDateTime.now()), average));
LOG.info("Average value is {}", average);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment