From 6e572e6626cb7ff249bf487e3fa03816c4add7fd Mon Sep 17 00:00:00 2001 From: yejin Date: Thu, 27 Nov 2025 21:59:51 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8A=A4=EC=BC=80=EC=A4=84=EB=9F=AC=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduler/OperatingScheduler.java | 63 ++++++++++++------- 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/src/main/java/devkor/com/teamcback/domain/operatingtime/scheduler/OperatingScheduler.java b/src/main/java/devkor/com/teamcback/domain/operatingtime/scheduler/OperatingScheduler.java index a9c17112..9f1e94b3 100644 --- a/src/main/java/devkor/com/teamcback/domain/operatingtime/scheduler/OperatingScheduler.java +++ b/src/main/java/devkor/com/teamcback/domain/operatingtime/scheduler/OperatingScheduler.java @@ -30,45 +30,62 @@ public class OperatingScheduler { private static Boolean isEvenWeek = null; @Scheduled(cron = "0 0 0 * * *") // 매일 자정마다 - // @EventListener(ApplicationReadyEvent.class) + @EventListener(ApplicationReadyEvent.class) public void updateOperatingTime() { - setState(); - log.info("운영 시간 업데이트"); - redisLockUtil.executeWithLock("lock", 1, 300, () -> { - operatingService.updateOperatingTime(dayOfWeek, isHoliday, isVacation, isEvenWeek); - return null; - }); + try{ + setState(); + log.info("운영 시간 업데이트"); + + redisLockUtil.executeWithLock("lock", 1, 300, () -> { + operatingService.updateOperatingTime(dayOfWeek, isHoliday, isVacation, isEvenWeek); + return null; + }); + } catch (Exception e) { + log.info("updateOperatingTime() 작업 실패: {}", e.getMessage(), e); + } } -// @Scheduled(cron = "30 35 * * * *") // 테스트용 + // @EventListener(ApplicationReadyEvent.class) // 테스트용 @Scheduled(cron = "0 */10 9-18 * * *") // 10분마다 public void updateOperatingDuringPeakHour() { - log.info("운영 여부 업데이트"); - redisLockUtil.executeWithLock("lock", 1, 300, () -> { - operatingService.updateIsOperating(LocalTime.now(), dayOfWeek, isHoliday, isVacation, isEvenWeek); - return null; - }); + try{ + log.info("운영 여부 업데이트"); + redisLockUtil.executeWithLock("lock", 1, 300, () -> { + operatingService.updateIsOperating(LocalTime.now(), dayOfWeek, isHoliday, isVacation, isEvenWeek); + return null; + }); + } catch (Exception e) { + log.info("updateOperatingDuringPeakHour() 작업 실패: {}", e.getMessage(), e); + } } @Scheduled(cron = "0 0,30 0-8,19-23 * * *") // 30분마다 public void updateOperating() { - log.info("운영 여부 업데이트"); - redisLockUtil.executeWithLock("lock", 1, 300, () -> { - operatingService.updateIsOperating(LocalTime.now(), dayOfWeek, isHoliday, isVacation, isEvenWeek); - return null; - }); + try{ + log.info("운영 여부 업데이트"); + redisLockUtil.executeWithLock("lock", 1, 300, () -> { + operatingService.updateIsOperating(LocalTime.now(), dayOfWeek, isHoliday, isVacation, isEvenWeek); + return null; + }); + } catch (Exception e) { + log.info("updateOperating() 작업 실패: {}", e.getMessage(), e); + } } // 장소 운영 시간 저장 - 건물의 운영 시간에 변동이 있을 경우 1회 작동 @EventListener(ApplicationReadyEvent.class) public void updatePlaceOperatingTime() { - log.info("장소 운영 시간 업데이트"); - redisLockUtil.executeWithLock("lock", 1, 300, () -> { - operatingService.updatePlaceOperatingTime(); - return null; - }); + try{ + log.info("장소 운영 시간 업데이트"); + redisLockUtil.executeWithLock("lock", 1, 300, () -> { + operatingService.updatePlaceOperatingTime(); + return null; + }); + } catch (Exception e) { + log.info("updatePlaceOperatingTime() 작업 실패: {}", e.getMessage(), e); + } } private void setState() {