[Kotlin] 스케줄러에 쓰레드 적용하기
보통 스프링에서 주기적으로 동작하는 로직이 있는경우 @Scheduled를 사용해서 특정시간 또는 날짜에 그 로직을 작동시키는 행동을 합니다. 하지만 그 로직이 오래걸릴 경우 해당 로직 종료전에 스케줄 시간이 다시 올경우 그 스케줄은 동작하지 않습니다. 왜냐하면 해당 스케줄러가 싱글 쓰레드로 동작하기 때문입니다. 기본적으로 Spring은 Single Thread Executor를 사용합니다. 따라서 두 개의 @Scheduled 작업이 겹치지 않습니다. 완전히 관련 없는 클래스에 있는 두 개의 @Scheduled 메서드도 모든 @Scheduled 작업을 실행하는 단일 스레드만 있기 때문에 겹치지 않습니다 . 또한 기본 Executor를 스레드 풀 기반 실행기로 교체하더라도 이러한 Executor는 일반적으로..
프로그래밍/Kotlin
2023. 3. 23. 15:26