Contents
스케줄링된 작업을 비동기적으로 실행하는 방법스프링부트에서 @Scheduled를 사용하면 일정 시간 간격으로, 또는 특정 시간에 코드가 실행되도록 설정할 수 있습니다.
스케쥴 어노테이션을 쓰려면 application class에 @EnableScheduling 를 추가
@EnableScheduling
@SpringBootApplicationpublic
class SchedulerApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
실제 스케쥴링 작업할 클래스 생성
@Servicepublic
class SchedulerService {
@Scheduled(시간타입 = 설정할 시간)
public void run() {
System.out.println("Hello CoCo World!);
}
}
fixedRate
@Servicepublic
class SchedulerService {
@Scheduled(fixedRate = 1000) // 1초 간격으로 실행
public void run() {
System.out.println("Hello CoCo World!);
}
}
- 작업 시작된 시점부터 일정 간격으로 실행
fixedDelay
@Servicepublic
class SchedulerService {
@Scheduled(fixedDelay = 5000) // 작업 종료 후 5초 대기 후 실행
public void run() {
System.out.println("Hello CoCo World!);
}
}
- 작업이 끝난 후 일정 시간 간격으로 실행
cron
@Servicepublic
class SchedulerService {
@Scheduled(cron = "0 0 * * * *") // 매 시간 정각에 실행
public void run() {
System.out.println("Hello CoCo World!);
}
}
- 크론 표현식을 사용해서 작업 실행 시점을 지정
추가 크론 표현식 :
@Scheduled(cron = "0 0 9 * * ?")
: 매일 오전 9시에 실행.
@Scheduled(cron = "0 0/10 * * * ?")
: 10분 간격으로 실행.
@Scheduled(cron = "0 0 12 ? * MON-FRI")
: 평일 낮 12시에 실행.
스케줄링된 작업을 비동기적으로 실행하는 방법
기본적으로 @Scheduled 메서드는 동기적으로 실행됩니다.
여러 작업을 처리하려면 비동기적으로 실행해야 합니다.
기본적으로 @Scheduled 메서드는 동기적으로 실행됩니다.
@Scheduled
어노테이션을 사용하여 메서드를 스케줄링할 수 있습니다. 이는 정해진 시간 간격으로 작업을 실행합니다.
- 기본적으로
@Scheduled
메서드는 동기적으로 실행되며, 이는 각 작업이 순차적으로 실행되고, 하나의 작업이 완료되기 전까지 다음 작업이 시작되지 않는다는 의미입니다.
여러 작업을 처리하려면 비동기적으로 실행해야 합니다.
- 여러 작업을 동시에 처리하려면 비동기적으로 실행하는 것이 좋습니다. 이는 작업이 병렬로 실행될 수 있게 합니다.
@EnableAsync 활성화
@EnableAsync
@EnableScheduling
public class ScheduledApplication {
}
@EnableAsync
어노테이션은 Spring에서 비동기 처리를 활성화합니다.
@EnableScheduling
어노테이션은 스케줄링을 활성화합니다.
- 이 두 어노테이션을 사용하여 비동기 스케줄링을 활성화할 수 있습니다.
@Async 추가
@Scheduled(fixedRate = 5000)
@Async
public void asyncTask() {
System.out.println("Async task executed at: " + System.currentTimeMillis());
}
@Scheduled(fixedRate = 5000)
애노테이션은 이 메서드를 5초마다 실행하도록 스케줄링합니다.
@Async
애노테이션은 메서드를 비동기적으로 실행되도록 설정합니다. 이로 인해 여러 작업이 병렬로 실행될 수 있습니다.
Share article