Skip to content

EMAIL_RECEIVER 테이블의 SEND_STATUS, SEND_AT 컬럼 값 미사용 #99

@chabinhwang

Description

@chabinhwang

테이블과 컬럼 의미

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 컬럼부분 업데이트 관련 로직의 추가가 필요해 보입니다. 확인 부탁드립니다.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions