분산 서버 환경에서 스케줄링 작업 중복 실행 제어하기
필자의 프로젝트는 총 2개의 EC2 인스턴스가 존재하고 각 서버에서는 총 2개의 스케줄링(배치) 작업이 중복 실행된다. 아래는 모바일 Push 알림 전송을 위해 사용하는 FCM에서 topic 기능을 사용하는데이 topic 개수 제한이 2,000개여서 주기적으로 topic을 해제할 필요가 있었다.따라서 약속 시간이 지난 모임들을 새벽 4시 마다 스케줄링하여 약속 논리 삭제와 topic 제거를 배치 처리하고 있다.아래의 update의 경우에는 중복 처리되어도 결과에 영향을 주진 않지만모든 서버가 동일한 작업에 대해 불필요하게 DB 커넥션을 사용해 동일한 쿼리를 DB에 요청하고 FCM과 통신할 필요는 없다.또한 아래 작업의 시간이 길어진다면 모든 서버들의 초기화 시간이 길어질 수 있다는 문제가 있다.@Tran..