package ru.ulstu.conference.service; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; @Service public class ConferenceScheduler { private final static boolean IS_DEADLINE_NOTIFICATION_BEFORE_WEEK = true; private final Logger log = LoggerFactory.getLogger(ConferenceScheduler.class); private final ConferenceNotificationService conferenceNotificationService; private final ConferenceService conferenceService; public ConferenceScheduler(ConferenceNotificationService conferenceNotificationService, ConferenceService conferenceService) { this.conferenceNotificationService = conferenceNotificationService; this.conferenceService = conferenceService; } @Scheduled(cron = "0 0 21-22 * * *", zone = "Europe/Samara") public void checkDeadlineBeforeWeek() { log.debug("ConferenceScheduler.checkDeadlineBeforeWeek started"); conferenceNotificationService.sendDeadlineNotifications(conferenceService.findAll(), IS_DEADLINE_NOTIFICATION_BEFORE_WEEK); log.debug("ConferenceScheduler.checkDeadlineBeforeWeek finished"); } @Scheduled(cron = "0 0 21-22 * * ?", zone = "Europe/Samara") public void checkDeadlineAfterWeek() { log.debug("ConferenceScheduler.checkDeadlineAfterWeek started"); conferenceNotificationService.sendDeadlineNotifications(conferenceService.findAll(), !IS_DEADLINE_NOTIFICATION_BEFORE_WEEK); log.debug("ConferenceScheduler.checkDeadlineAfterWeek finished"); } }