Skip to content

Commit

Permalink
Feat/sse (#110)
Browse files Browse the repository at this point in the history
* Fix: 오류 수정

* Fix: 구독 목록 불러오기 수정

* Fix: transactional readonly 삭제

* Fix: sse 연결 방식 수정

* Remove: pub/sub 파일 삭제

* Feat: ExecutorService 추가
  • Loading branch information
flowerdonk authored Aug 14, 2023
1 parent 25e24a5 commit 4c63f42
Showing 1 changed file with 14 additions and 8 deletions.
22 changes: 14 additions & 8 deletions src/main/java/com/anywayclear/service/AlarmService.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

Expand All @@ -27,6 +29,7 @@ public class AlarmService {
// 리포지토리 대신 템플릿 사용
private final RedisTemplate<String, Alarm> redisAlarmTemplate;

private final ExecutorService excutor = Executors.newSingleThreadExecutor();

// 구독 목록 불러오기 위한 서비스
private final SubscribeRepository subscribeRepository;
Expand Down Expand Up @@ -171,13 +174,16 @@ public AlarmResponseList getDibAlarmList(String memberId) { // 해당 유저의

public void sendToClient(SseEmitter emitter, String key, String name, Object data) {
log.info("key={}, name={}, message={}",key, name, data);
try {
emitter.send(SseEmitter.event()
.id(key)
.name(name)
.data(data));
} catch (IOException e) {
sseRepository.remove(key);
}

excutor.execute(() -> {
try {
emitter.send(SseEmitter.event()
.id(key)
.name(name)
.data(data));
} catch (IOException e) {
sseRepository.remove(key);
}
});
}
}

0 comments on commit 4c63f42

Please sign in to comment.