Skip to content

Commit a8c3718

Browse files
committed
refactor: 스케줄러 TimeZone 명시 및 클래스·메서드·필드명 수정
1 parent fe8d36b commit a8c3718

2 files changed

Lines changed: 22 additions & 23 deletions

File tree

src/main/java/io/wisoft/prepair/prepair_api/interview/question/service/TodayQuestionService.java

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@
2121
@RequiredArgsConstructor
2222
public class TodayQuestionService {
2323

24-
private final QuestionPersistenceService interviewQuestionService;
24+
private final QuestionPersistenceService questionPersistenceService;
2525
private final QuestionNotificationService questionNotificationService;
2626
private final QuestionRepository questionRepository;
2727
private final MemberServiceClient memberServiceClient;
2828
private final OpenAiClient openAiClient;
2929
private final PromptBuilder promptBuilder;
3030

31-
public void generateTodayQuestions() {
31+
public void sendTodayQuestions() {
3232
List<MemberSchedulerInfo> members = memberServiceClient.getMembers();
3333
DayOfWeek today = LocalDate.now(ZoneId.of("Asia/Seoul")).getDayOfWeek();
3434

@@ -40,17 +40,17 @@ public void generateTodayQuestions() {
4040
.toList();
4141

4242
log.info("질문 생성 대상: {} / {} 명", targetMembers.size(), members.size());
43-
targetMembers.forEach(this::processTodayQuestion);
43+
targetMembers.forEach(this::generateAndSend);
4444
}
4545

46-
private void processTodayQuestion(MemberSchedulerInfo member) {
46+
private void generateAndSend(MemberSchedulerInfo member) {
4747
try {
4848
List<InterviewQuestion> previousQuestions = questionRepository.findByMemberId(member.id());
4949
String prompt = promptBuilder.buildDailyQuestionPrompt(member.job(), previousQuestions);
5050
QuestionWithTags result = openAiClient.generateQuestion(prompt);
5151
log.info("질문 생성 완료 | memberId={}", member.id());
5252

53-
InterviewQuestion question = interviewQuestionService.saveTodayQuestion(member.id(), result);
53+
InterviewQuestion question = questionPersistenceService.saveTodayQuestion(member.id(), result);
5454
log.info("질문 저장 완료 | memberId={}", member.id());
5555

5656
questionNotificationService.notifyMember(member, question);
@@ -59,22 +59,6 @@ private void processTodayQuestion(MemberSchedulerInfo member) {
5959
}
6060
}
6161

62-
private boolean shouldSendToday(MemberSchedulerInfo member, DayOfWeek today) {
63-
return switch (member.frequency()) {
64-
case EVERY -> true;
65-
case WEEKLY -> today == DayOfWeek.MONDAY;
66-
};
67-
}
68-
69-
70-
private boolean isValidNotification(MemberSchedulerInfo member) {
71-
if (member.notification() == null) {
72-
log.warn("멤버 스킵 | memberId={} | reason=no_notification", member.id());
73-
return false;
74-
}
75-
return true;
76-
}
77-
7862
private boolean isValidFrequency(MemberSchedulerInfo member) {
7963
if (member.frequency() == null) {
8064
log.warn("멤버 스킵 | memberId={} | reason=no_frequency", member.id());
@@ -90,4 +74,19 @@ private boolean isValidJob(MemberSchedulerInfo member) {
9074
}
9175
return true;
9276
}
77+
78+
private boolean isValidNotification(MemberSchedulerInfo member) {
79+
if (member.notification() == null) {
80+
log.warn("멤버 스킵 | memberId={} | reason=no_notification", member.id());
81+
return false;
82+
}
83+
return true;
84+
}
85+
86+
private boolean shouldSendToday(MemberSchedulerInfo member, DayOfWeek today) {
87+
return switch (member.frequency()) {
88+
case EVERY -> true;
89+
case WEEKLY -> today == DayOfWeek.MONDAY;
90+
};
91+
}
9392
}

src/main/java/io/wisoft/prepair/prepair_api/scheduler/TodayQuestionScheduler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ public class TodayQuestionScheduler {
1717

1818
private final TodayQuestionService todayQuestionService;
1919

20-
@Scheduled(cron = "0 0 9 * * *")
20+
@Scheduled(cron = "0 0 9 * * *", zone = "Asia/Seoul")
2121
public void generateTodayQuestions() {
2222
String correlationId = "SCHEDULER-" + UUID.randomUUID().toString();
2323
MDC.put("correlationId", correlationId);
2424
try {
2525
log.info("오늘의 질문 생성 스케줄러 시작 - {}", LocalDateTime.now());
26-
todayQuestionService.generateTodayQuestions();
26+
todayQuestionService.sendTodayQuestions();
2727
log.info("오늘의 질문 생성 스케줄러 종료");
2828
} finally {
2929
MDC.remove("correlationId");

0 commit comments

Comments
 (0)