반응형
Spring Framework에서 지정된 시간에 동작하는 로직을 만드는 방법은 여러가지가 있습니다.
1. Scheduled Annotation 사용하기
Spring Framework에서는 @Scheduled 어노테이션을 제공하여 지정된 시간에 메소드를 실행할 수 있습니다. 이 어노테이션을 사용하면 cron 표현식이나 고정된 시간 간격으로 메소드를 실행할 수 있습니다.
예를 들어, 아래의 코드는 myMethod() 메소드를 5초마다 실행합니다.
@Component
public class MyScheduledTask {
@Scheduled(fixedDelay = 5000)
public void myMethod() {
// 실행할 코드 작성
}
}
2. Spring Boot Scheduling 사용하기
Spring Boot에서는 스케줄링을 쉽게 구현할 수 있도록 @EnableScheduling 어노테이션을 제공합니다. 이 어노테이션을 사용하여 스케줄링을 활성화하고 @Scheduled 어노테이션을 사용하여 메소드를 실행할 수 있습니다.
예를 들어, 아래의 코드는 myMethod() 메소드를 매일 오전 6시에 실행합니다.
@Component
@EnableScheduling
public class MyScheduledTask {
@Scheduled(cron = "0 0 6 * * ?")
public void myMethod() {
// 실행할 코드 작성
}
}
3. Quartz 스케줄러 사용하기
Spring Framework에서는 Quartz 스케줄러를 사용하여 더욱 복잡한 스케줄링을 구현할 수 있습니다. Quartz를 사용하면 스케줄링의 세부 설정을 조정할 수 있으며, 실행할 Job 클래스를 지정할 수 있습니다.
예를 들어, 아래의 코드는 Quartz를 사용하여 MyJob 클래스를 매일 오전 6시에 실행합니다.
@Component
public class MyScheduledTask {
@Autowired
private Scheduler scheduler;
@PostConstruct
public void scheduleMyJob() throws SchedulerException {
JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
.withIdentity("myJob", "group1")
.build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 6 * * ?"))
.build();
scheduler.scheduleJob(jobDetail, trigger);
}
}
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
// 실행할 코드 작성
}
}
위의 방법들 중에서 적절한 방법을 선택하여 로직을 구현할 수 있습니다.
반응형
'Etc > Test' 카테고리의 다른 글
언리얼엔진 SetRootComponent RootComponent 차이 (0) | 2023.04.03 |
---|---|
com.oracle.bmc.model.BmcException (0) | 2023.03.21 |
BasicResponseHandler HandleResponse(HttpResponse) (0) | 2023.03.20 |
OCI CLI endpoint 정보 확인 (0) | 2023.03.20 |
인증된 사용자 정보 관리 (0) | 2023.03.16 |