@Scheduled
Websocket を介して毎秒クライアントにデータを送信するタスクがあります。
クライアントが要求したときにのみ、スケジュールされたタスクの実行を開始する必要があります。
代わりに、サーバーの起動時にタスクが開始されます。それは私が望む動作ではありません。
現在、 SchedulingConfigurer で宣言されているスケジュールされたタスクの Bean があります。
@Configuration
@EnableScheduling
public class SchedulingConfigurer implements org.springframework.scheduling.annotation.SchedulingConfigurer {
@Bean
public ThreadPoolTaskScheduler taskScheduler() {
return new ThreadPoolTaskScheduler();
}
@Bean
public ScheduledTask scheduledTask() {
return new ScheduledTask();
}
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setTaskScheduler(taskScheduler());
}
}
これが私のスプリングコントローラーコードです:
@MessageMapping("/hello")
public void greeting() throws Exception {
//How do I start my scheduled task here ?
}
@Scheduled
アノテーションを使用してそれを行うことはできず、TaskScheduler
インターフェイスを使用する必要がありますか?