Skip to content

Commit 813d6b6

Browse files
committed
fix: 페어룸이 완료 상태면 타이머를 release 한다.
1 parent 3b2c19a commit 813d6b6

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

backend/src/main/java/site/coduo/pairroom/repository/PairRoomEntity.java

+4
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ public boolean isActive() {
106106
return status != PairRoomStatus.COMPLETED && status != PairRoomStatus.DELETED;
107107
}
108108

109+
public boolean isCompleted() {
110+
return status == PairRoomStatus.COMPLETED;
111+
}
112+
109113
public boolean isDeleted() {
110114
return status == PairRoomStatus.DELETED;
111115
}

backend/src/main/java/site/coduo/timer/service/SchedulerService.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212

1313
import lombok.RequiredArgsConstructor;
1414
import lombok.extern.slf4j.Slf4j;
15+
import site.coduo.pairroom.repository.PairRoomEntity;
16+
import site.coduo.pairroom.repository.PairRoomRepository;
1517
import site.coduo.timer.domain.Timer;
1618
import site.coduo.timer.domain.TimerStatus;
1719
import site.coduo.timer.repository.TimerEntity;
@@ -30,6 +32,7 @@ public class SchedulerService {
3032
private final SchedulerRegistry schedulerRegistry;
3133
private final TimestampRegistry timestampRegistry;
3234
private final TimerRepository timerRepository;
35+
private final PairRoomRepository pairRoomRepository;
3336

3437
public void start(final String key) {
3538
if (schedulerRegistry.isActive(key)) {
@@ -62,7 +65,8 @@ private void runTimer(final String key, final Timer timer) {
6265
reset(key, timer);
6366
return;
6467
}
65-
if (timerStompManager.isTimerIdle(key) && schedulerRegistry.isActive(key)) {
68+
PairRoomEntity pairRoomEntity = pairRoomRepository.fetchByAccessCode(key);
69+
if (timerStompManager.isTimerIdle(key) && schedulerRegistry.isActive(key) || pairRoomEntity.isCompleted()) {
6670
schedulerRegistry.release(key);
6771
return;
6872
}

backend/src/test/java/site/coduo/timer/service/SchedulerServiceTest.java

+11-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import site.coduo.pairroom.domain.accesscode.AccessCode;
1919
import site.coduo.pairroom.repository.PairRoomEntity;
20+
import site.coduo.pairroom.repository.PairRoomRepository;
2021
import site.coduo.timer.domain.Timer;
2122
import site.coduo.timer.repository.TimerEntity;
2223
import site.coduo.timer.repository.TimerRepository;
@@ -25,6 +26,7 @@
2526
@SpringBootTest
2627
class SchedulerServiceTest {
2728

29+
@Autowired
2830
private ThreadPoolTaskScheduler taskScheduler;
2931

3032
@Autowired
@@ -33,8 +35,15 @@ class SchedulerServiceTest {
3335
@Autowired
3436
private TimestampRegistry timestampRegistry;
3537

38+
@Autowired
39+
private PairRoomRepository pairRoomRepository;
40+
41+
@Autowired
3642
private TimerStompManager timerStompManager;
43+
44+
@Autowired
3745
private TimerRepository timerRepository;
46+
3847
private SchedulerService schedulerService;
3948

4049
@BeforeEach
@@ -46,7 +55,8 @@ void setUp() {
4655
taskScheduler,
4756
schedulerRegistry,
4857
timestampRegistry,
49-
timerRepository
58+
timerRepository,
59+
pairRoomRepository
5060
);
5161
}
5262

0 commit comments

Comments
 (0)