我有一个@Scheduled
任务通过 websocket 每秒向客户端发送数据。
我的需要是仅在客户要求时才开始运行我的计划任务。
而不是,我的任务在我的服务器启动时开始。这不是我想要的行为。
目前,我有一个计划任务的 bean,它在我的 SchedulingConfigurer 中声明:
@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
界面?