Skip to content

Transactional로 인한 비정상적이던 task 실행 수정 및 retry 적용#185

Merged
jihukimme merged 11 commits intodevelopfrom
feature/run-task
Sep 23, 2025
Merged

Transactional로 인한 비정상적이던 task 실행 수정 및 retry 적용#185
jihukimme merged 11 commits intodevelopfrom
feature/run-task

Conversation

@jihukimme
Copy link
Member

@jihukimme jihukimme commented Sep 23, 2025

📝 작업 내용

  1. Task 실행 안정성 강화 (트랜잭션 롤백 방지)

    • 문제점: @Transactional 메소드 내에서 Task 실행 중 예외가 발생하면, 트랜잭션 전체가 롤백되어 workflow_run, job_run, task_run의 상태가 FAILED로 기록되지 않는 문제가 있었습니다.
    • 해결책: executeTasksForJob 메소드 내부에 try-catch 블록을 추가하여, Task 실행 중 발생하는 모든 예외를 처리합니다. 이를 통해 예외가 발생하더라도 트랜잭션이 롤백되지 않고, 모든 실행 이력과 최종 FAILED 상태가 DB에 정상적으로 커밋(Commit)되도록 수정했습니다.
  2. Spring Retry를 이용한 재시도 정책 적용

    • TaskExecutionService를 신규 생성하여, Task 실행 로직을 위임하고 재시도 책임을 분리했습니다.
    • @Retryable 어노테이션을 사용하여 외부 API 통신 실패(RestClientException) 시 최대 3회, 5초 간격으로 재시도하도록 설정했습니다.
    • @Recover 어노테이션을 사용하여 모든 재시도가 실패했을 때 최종 실패를 처리하는 복구 로직을 구현했습니다.
    • 이 로직을 Quartz Job이 아닌 서비스 계층에 둠으로써, 스케줄 실행과 수동 API 실행 모두에 일관된 재시도 정책이 적용됩니다.
  3. 디렉토리 구조 리팩토링

    • **execution 도메인을 workflow 도메인에 합침 **: 응집도(Cohesion)를 높이기 위한 리팩토링

🔗 관련 이슈

  • Closes #이슈번호
  • Related to #이슈번호

💬 추가 요청사항


✅ 체크리스트

코드 품질

  • 커밋 컨벤션 준수 (feat/fix/docs/refactor 등)
  • 불필요한 코드/주석 제거

테스트

  • 로컬 환경에서 동작 확인 완료
  • 기존 기능에 영향 없음 확인

배포 준비

  • 환경변수 추가/변경사항 문서화
  • DB 마이그레이션 필요 여부 확인
  • 배포 시 주의사항 없음

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
# Conflicts:
#	apps/user-service/src/main/java/site/icebang/domain/workflow/model/Task.java
#	apps/user-service/src/main/java/site/icebang/domain/workflow/service/WorkflowExecutionService.java
@jihukimme jihukimme self-assigned this Sep 23, 2025
@jihukimme jihukimme added the enhancement New feature or request label Sep 23, 2025
@jihukimme jihukimme changed the title Transactional로 인한 비정상적이던 task 실행 수정 및 디렉토리 구조 리팩토링 Transactional로 인한 비정상적이던 task 실행 수정 및 retry 적용 Sep 23, 2025
@jihukimme jihukimme changed the base branch from main to develop September 23, 2025 07:55
@jihukimme jihukimme marked this pull request as ready for review September 23, 2025 08:01
@jihukimme jihukimme merged commit caaf88f into develop Sep 23, 2025
11 checks passed
@jihukimme jihukimme deleted the feature/run-task branch September 23, 2025 08:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant