-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
📈 enhancementNew feature or requestNew feature or request
Description
테이블과 컬럼 의미
EMAIL_RECEIVER : 여러 사람에게 이메일을 보냈을 때, 각각의 개별 이메일 전송 TASK를 저장하는 테이블 입니다.
예: 합격 이메일 전송 상황에서, 합격자-이메일 내용-ID값을 저장하는 역할을 합니다.
SEND_STATUS : 전송 상태를 WAITING,PENDING,COMPLETED,FAILED,CANCELLED 중 하나로 저장 (EmailSendStatus 클래스 참고)
SEND_AT : 전송 시점의 시각을 저장
문제점 - SEND_STATUS, SEND_AT 미사용
@Override
public void scheduleSyncTask(Object emailTask, long delay) {
EmailTask email = (EmailTask) emailTask;
Long id = email.getId();
Runnable sendEmailTask =
() -> transactionTemplate.execute(status -> {
try {
EmailTaskInfo sendingTask = emailService.findByIdWithReceivers(id);
emailClient.sendEmailToReceivers(sendingTask);
emailService.markAsCompleted(id);SEND_STATUS, SEND_AT컬럼이 미사용중인 점을 확인했습니다. 테스트 이메일을 등록하면 내부에서 로직을 거친 다음, EmailTaskScheduler클래스 내의 scheduleSyncTask 메서드에서 전송 작업을 처리합니다. 이 부분에서 업데이트 되는 부분은 emailService.markAsCompleted(id);입니다. 이를 추적해보면 EMAIL_TASK의 IS_SENT 컬럼 값만 바꾸는 것을 알 수 있습니다. 제가 해당 로직을 제대로 파악한 것이 맞다면, SEND_STATUS, SEND_AT 컬럼부분 업데이트 관련 로직의 추가가 필요해 보입니다. 확인 부탁드립니다.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
📈 enhancementNew feature or requestNew feature or request