これはjava configを使用して行うことができます。しかし、アノテーション属性を使用していません。
いくつかの拡張例については、Spring API docをご覧ください。例えば
:
@Configuration
@EnableScheduling
public class AppConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(taskScheduler());
}
@Bean(destroyMethod="shutdown")
public Executor taskScheduler() {
return Executors.newScheduledThreadPool(42);
}
}
@Scheduled
グループがまだサポートされていません。このopen issueを参照してください。
複数のスケジューラを使用する場合は、それらをプログラムで作成および構成する必要があります。例:
@Configuration
@EnableScheduling
public class AppConfig implements SchedulingConfigurer {
[...]
@Bean(destroyMethod="shutdown", name = "taskSchedulerA")
public Executor taskSchedulerA() {
return Executors.newScheduledThreadPool(42);
}
@Bean(destroyMethod="shutdown", name = "taskSchedulerB")
public Executor taskSchedulerA() {
return Executors.newScheduledThreadPool(42);
}
}
@Service
public class MyService {
@Autowired @Qualifier("taskSchedulerA")
private Executor taskSchedulerA;
@Autowired @Qualifier("taskSchedulerB")
private Executor taskSchedulerB;
@PostConstruct
public void schedule(){
Executors.newScheduledThreadPool(42).schedule(new Runnable() {
@Override
public void run() {
functionOfGroupA();
}
} , ..);
}
}
私はそれほどフォローしませんでした。では、これを使用して2つの異なるスケジューラをどのように使用できますか? – SHB
プログラムでスケジューラを2つ作成して使用する必要があります –