Job을 처리할 때 고려해야할 설계사항

Job

Job이란 주기적인 데이터 일괄 처리를 의미한다.

Job을 처리하기 위한 데이터는 Request 파라미터 또는 DB를 통해 호출하며 상태 변경이나 특정 기능을 실행한다.

 

 

Job에서 플래그 컬럼, 부수적인 테이블 활용

특정 데이터의 주기적인 업데이트가 필요할 때 모든 범위의 데이터를 스캔하면 비효율적이다.

업데이트할 데이터를 선별하기 위해서 쿼리를 통해 데이터를 선별할 수도 있지만 like 조건절 같은 경우 슬로우 쿼리를 유발한다.

이러한 경우 경우에 따라 다음과 같은 방법이 있다.

  • 처리여부를 나타내는 컬럼을 추가하여 처리한 데이터를 구별한다.

  • 히스토리 테이블을 활용하여 처리 완료한 경우 테이블에서 데이터를 삭제처리하여 변경이 필요한 데이터만 남게한다.

  • 처리 위치를 확인하기 위해 페이징 처리를 위한 별도의 테이블을 활용한다.

댓글을 작성해보세요.

채널톡 아이콘