JAVA/SPRING

[SPRING] fixedDelay

오선지♬ 2024. 9. 17. 15:23
728x90
반응형

fixedDelay는 Spring의 @Scheduled 어노테이션에서 사용하는 속성 중 하나로, 작업이 완료된 후 일정 시간(딜레이)이 지나면 다시 실행되는 방식의 스케줄링을 설정하는 데 사용됩니다.

fixedDelay 동작 방식:

  • 이전 작업이 완료된 시간으로부터 지정된 시간만큼 대기한 후에 작업을 다시 실행합니다.
  • 딜레이 시간은 밀리초 단위로 설정됩니다. 예를 들어, fixedDelay = 1000 * 30은 30초(30,000밀리초)의 딜레이를 의미합니다.

주요 특징:

  • 작업이 완료된 후 딜레이 시간을 기준으로 다음 작업을 실행하므로, 이전 작업이 끝나기 전에 새 작업이 시작되지 않습니다.
  • 작업 시간이 불규칙하거나 길어질 수 있는 상황에서 사용하기 좋습니다.
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class FixedDelayTask {

    // 이전 작업이 끝난 후 30초 뒤에 다시 실행
    @Scheduled(fixedDelay = 1000 * 30)
    public void performTask() {
        System.out.println("작업 실행 시간: " + System.currentTimeMillis());
    }
}

동작 설명:

  • 만약 performTask() 메서드가 10초 동안 실행되었다면, 작업이 완료된 후 30초가 지나야 다시 실행됩니다.
  • 즉, 작업이 실행되는 주기적인 시간은 작업 시간 + fixedDelay 시간이 됩니다.
728x90
반응형