Skip to content

feat: 유저 문제 풀이 스냅샷 수집 및 변경 감지 배치 구현 #14

@tkv00

Description

@tkv00

📄 설명

  • 사용자의 문제풀이 유무와 시간대를 1시간 단위로 배치가 실행됩니다.

  • 전체적인 배치 로직은 다음과 같습니다.

    1. 전체 사용자의 정보를 불러옵니다.(사용자 Id, 백준 Id, 백준 레벨)
    2. 모든 사용자의 백준 Id를 파라미터값으로 solved.ac 사용자 정보 조회 API 진행
    3. ( 백준Id + 배치 시간 기준 1시간 전 날짜 )를 key값으로 하여 MongoDB에서 스냅샷 조회
    4. 사용자의 레벨 변경 시 : 사용자 정보를 업데이트 쿼리 호
    5. 사용자가 푼 문제 개수 변경 시
      a. 사용자의 백준 Id로 사용자별 문제 정보 조회 API 호출
      b. 새롭게 푼 문제 번호를 조건으로 사용자의 문제 풀이유무 + 문제 푼 시간 업데이트 쿼리 호출
    6. 변경된 값들에 대해 MongoDB에 스냅샷 저장
  • 배치 장애 대응은 이번 이슈에서 다루기에는 사이즈가 크기 때문에 다음 이슈로 분할하여 구현하겠습니다.

✅ 작업할 내용

🙋🏻 참고 자료

No response

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    ✅ test테스트 코드 추가/수정✨ feat새로운 기능 추가, 기존 기능을 요구 사항에 맞추어 수정

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions