定时任务时直接使用WebSocketConfigurer注册端口时的Handler来发送消息后,重启项目出现了一个找不到Bean的异常
org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'defaultSockJsTaskScheduler' is expected to be of type 'org.springframework.scheduling.TaskScheduler' but was actually of type 'org.springframework.beans.factory.support.NullBean'
定时任务使用webSocket发送消息,导致webSocket创建线程和定时任务创建线程冲突,从而定时任务创建线程失败,导致程序出错
手动创建定时任务线程池,避免定时任务创建失败
java@Configuration
public class Config {
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler scheduling = new ThreadPoolTaskScheduler();
scheduling.setPoolSize(5);
scheduling.initialize();
return scheduling;
}
}
改用@ServerEndpoint注解和ServerEndpointExporter来创建webSocketServer服务,这个是可以在定时任务中使用的,不会出现问题.
本文作者:Weee
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
预览: