programing

특정 실행자와 함께 Spring의 @Scheduled 주석 사용

testmans 2023. 8. 18. 21:03
반응형

특정 실행자와 함께 Spring의 @Scheduled 주석 사용

특정 실행자를 사용하여 실행하도록 Spring 예약 메서드를 어떻게 지정합니까?

예를 들어, 이것은 나의 스프링 스케줄러 방법 중 하나입니다.

@Scheduled(fixedRate=1000)
public void scheduleJobs(){
    doThese();
}

다음은 내 Java 구성에 정의된 두 실행자입니다.

@Bean
public Executor taskScheduler() {
    ThreadPoolTaskScheduler t = new ThreadPoolTaskScheduler();
    t.setPoolSize(2);
    t.setThreadNamePrefix("taskScheduler - ");
    t.initialize();
    return t;
}

@Bean
public Executor newTaskScheduler() {
    ThreadPoolTaskScheduler t = new ThreadPoolTaskScheduler();
    t.setPoolSize(2);
    t.setThreadNamePrefix("newTaskScheduler - ");
    t.initialize();
    return t;
}

예약된 메서드가 실행 중일 때 사용 중임을 알 수 있습니다.taskScheduler집행인사용하여 실행을 지시하는 방법newTaskScheduler실행자?

자바도크는 그 지역에서 꽤나 철저합니다.

다음을 구현해야 합니다.SchedulingConfigurer어떤 것을 미세 조정하기 위해Executor사용해야 합니다.

@Configuration
@EnableScheduling
public class AppConfig implements SchedulingConfigurer {

 @Override
 public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
  taskRegistrar.setScheduler(taskScheduler());
 }

 @Bean
 public Executor taskScheduler() {
  ThreadPoolTaskScheduler t = new ThreadPoolTaskScheduler();
  t.setPoolSize(2);
  t.setThreadNamePrefix("taskScheduler - ");
  t.initialize();
  return t;
 }


}

@Scheduled를 사용하는 실행자 자격은 아직 지원되지 않습니다.

참조 - https://jira.spring.io/browse/SPR-14218

언급URL : https://stackoverflow.com/questions/41018041/using-springs-scheduled-annotation-with-a-specific-executor

반응형