Skip to content

Commit

Permalink
Merge pull request #622 from woowacourse-teams/BE/timer-log
Browse files Browse the repository at this point in the history
fix : 타이머 로깅
  • Loading branch information
kelly6bf authored Sep 26, 2024
2 parents c0d47fa + 9fd9e73 commit 15aa3e1
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@
import org.springframework.stereotype.Component;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import site.coduo.timer.domain.Timer;
import site.coduo.timer.repository.TimerRepository;
import site.coduo.timer.service.TimestampRegistry;

@Slf4j
@RequiredArgsConstructor
@Component
public class SchedulerService {
Expand All @@ -27,15 +29,22 @@ public class SchedulerService {
private final SseService sseService;

public void start(final String key) {
log.info("[Timer] 2. 타이머 시작 메시지 전송.");
sseService.broadcast(key, "timer", "start");
if (isInitial(key)) {
log.info("[Timer] 2-1. 타이머가 한 번도 시작되지 않음.");
log.info("[Timer] 2-2. DB에서 타이머 가저옴");
final Timer timer = timerRepository.fetchTimerByAccessCode(key)
.toDomain();
log.info("[Timer] 2-3. 스케줄링 시작");
scheduling(key, timer);
log.info("[Timer] 7. register() 시작!!!!!");
timestampRegistry.register(key, timer);
return;
}
log.info("[Timer] 8. 타이머를 시작한 사람이 이미 존재한다.");
final Timer timer = timestampRegistry.get(key);
log.info("[Timer] 8-1. 스케줄링을 시작한다.");
scheduling(key, timer);
}

Expand All @@ -44,13 +53,17 @@ private boolean isInitial(final String key) {
}

private void scheduling(final String key, final Timer timer) {
log.info("[Timer] 3. 시간 전송 시작!");
final Trigger trigger = new PeriodicTrigger(DELAY_SECOND);
final ScheduledFuture<?> schedule = taskScheduler.schedule(() -> runTimer(key, timer), trigger);
schedulerRegistry.register(key, schedule);
log.info("[Timer] 6. 스케줄링 끝!!");
}

private void runTimer(final String key, final Timer timer) {
log.info("[Timer] 4. 1초씩 전송!!");
if (timer.isTimeUp()) {
log.info("[Timer] 4-1. 타이머 끝!!");
stop(key);
final Timer initalTimer = new Timer(timer.getAccessCode(), timer.getDuration(), timer.getDuration());
timestampRegistry.register(key, initalTimer);
Expand All @@ -62,6 +75,7 @@ private void runTimer(final String key, final Timer timer) {
}
timer.decreaseRemainingTime(DELAY_SECOND.toMillis());
sseService.broadcast(key, "remaining-time", String.valueOf(timer.getRemainingTime()));
log.info("[Timer] 5. 타이머 끝!!, 남은 시간 : {}", timer.getRemainingTime());
}

public void pause(final String key) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@
import org.springframework.web.bind.annotation.RestController;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import site.coduo.sync.service.SchedulerService;
import site.coduo.timer.controller.docs.TimerDocs;
import site.coduo.timer.service.TimerService;
import site.coduo.timer.service.dto.TimerReadResponse;
import site.coduo.timer.service.dto.TimerUpdateRequest;

@Slf4j
@RequiredArgsConstructor
@RestController
public class TimerController implements TimerDocs {
Expand All @@ -25,8 +27,9 @@ public class TimerController implements TimerDocs {

@PatchMapping("/{accessCode}/timer/start")
public ResponseEntity<Void> createTimerStart(@PathVariable("accessCode") final String accessCode) {
log.info("[Timer] 1. 타이머 시작!");
schedulerService.start(accessCode);

log.info("[Timer] 9. 스케줄링 API 전체 종료");
return ResponseEntity.noContent()
.build();
}
Expand Down

0 comments on commit 15aa3e1

Please sign in to comment.