1919import edu .tamu .framework .model .ApiResponse ;
2020
2121@ Service
22- public class ProcessSchedules {
22+ public class UpdateSchedules {
2323
24- private Logger logger = LoggerFactory .getLogger (ProcessSchedules .class );
24+ private Logger logger = LoggerFactory .getLogger (UpdateSchedules .class );
2525
2626 @ Autowired
2727 private ScheduleRepo scheduleRepo ;
@@ -35,8 +35,16 @@ public class ProcessSchedules {
3535 @ Autowired
3636 private SimpMessagingTemplate simpMessagingTemplate ;
3737
38- @ Scheduled (cron = "5 0/5 * * * ?" )
39- private void checkSchedules () {
38+ @ Scheduled (cron = "5 0/1 * * * ?" )
39+ private void updateSchedules () {
40+
41+ updateEndingSchedules ();
42+
43+ updateStartingSchedules ();
44+
45+ }
46+
47+ private synchronized void updateEndingSchedules () {
4048
4149 Date date = new Date ();
4250 Long now = date .getTime ();
@@ -48,9 +56,19 @@ private void checkSchedules() {
4856 scheduler .setWithinSchedule (false );
4957 scheduler = abstractSchedulerRepo .save (scheduler );
5058 logger .info ("Ending schedule for " + scheduler );
59+ scheduler .removeSchedule (schedule );
60+ scheduler = abstractSchedulerRepo .save (scheduler );
61+ scheduleRepo .delete (schedule );
5162 broadcastUpdate (scheduler );
5263 });
5364
65+ }
66+
67+ private synchronized void updateStartingSchedules () {
68+
69+ Date date = new Date ();
70+ Long now = date .getTime ();
71+
5472 logger .info ("Checking for starting schedules" );
5573 scheduleRepo .findByScheduledPostingStartLessThanEqualAndScheduledPostingEndGreaterThanEqualAndSchedulerWithinScheduleFalse (now , now ).forEach (schedule -> {
5674 AbstractScheduler scheduler = schedule .getScheduler ();
0 commit comments