Skip to content

Commit 58b56e0

Browse files
committed
refactor: summit notified 키 TTL 갱신을 첫 발송 시점으로 제한
50% 통과 후 매 GPS 점마다 EXPIRE 가 호출되던 핫패스 부하 제거. SADD 가 새로 추가된 경우(added=1) 에만 TTL 을 세팅하도록 가드 위치 이동.
1 parent 505e04e commit 58b56e0

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

src/main/java/com/semosan/api/domain/tracking/service/TrackingMilestoneTriggerService.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,12 @@ public void evaluateSummit(Long sessionId, Long userId, double distanceTotal, do
144144
}
145145
String key = summitNotifiedKey(sessionId);
146146
Long added = redisTemplate.opsForSet().add(key, "1");
147-
redisTemplate.expire(key, TTL);
148147
if (added == null || added == 0L) {
149-
// 이미 다른 호출에서 보낸 상태 — silent skip
148+
// 이미 다른 호출에서 보낸 상태 — silent skip.
149+
// EXPIRE 도 함께 skip 해야 50% 통과 후 매 GPS 점마다 TTL 이 리셋되는 핫패스 부하를 막을 수 있다.
150150
return;
151151
}
152+
redisTemplate.expire(key, TTL);
152153
sendSummit(sessionId, userId, halfwayMark);
153154
}
154155

0 commit comments

Comments
 (0)