WebSocketConfigurationSupport$NoOpScheduler.schedule

项目中使用了WebSocket进行消息的推送,同时又使用了定时器Scheduled进行定时执行操作,这两者同时使用抛出异常。

java.lang.IllegalStateException: Unexpected use of scheduler.
    at org.springframework.web.socket.config.annotation.WebSocketConfigurationSupport$NoOpScheduler.schedule(WebSocketConfigurationSupport.java:108)

查看WebSocketConfigurationSupport的108行,可以看到

private static class NoOpScheduler implements TaskScheduler {

		@Override
		@Nullable
		public ScheduledFuture<?> schedule(Runnable task, Trigger trigger) {
			throw new IllegalStateException("Unexpected use of scheduler.");
		}

这里定义了一个schedule方法,方法中执行抛出了一个异常,该方法对于所有的@Schedule都会执行,所以会抛出异常。
解决:
通过显示手动创建ThreadPoolTaskScheduler,在Config中增加方法:

 @Bean
    public ThreadPoolTaskScheduler taskScheduler(){
        ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
        taskScheduler.setPoolSize(10);
        taskScheduler.initialize();
        return taskScheduler;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值