springwebsocketstomp客户端发送 long
到spring websocket stomp服务器,该服务器立即返回相同的值。当客户端完成发送时,它退出其主线程,客户端按预期终止。
如果我启用跺脚心跳:
webSocketStompClient.setTaskScheduler(
new DefaultManagedTaskScheduler()
);
webSocketStompClient.setDefaultHeartbeat(
new long[] {10_000, 10_000}
);
当客户机的主线程完成时,客户机不再退出jvm,因为 DefaultManagedTaskScheduler
任务调度器启动了一个非守护进程线程(“pool-2-thread-1”)。
我不想通过 System.exit
,那么如何关闭keep-alive任务调度器,以便在主线程完成时客户端终止呢?
1条答案
按热度按时间x7yiwoj41#
热释光;博士
构建并保留jdks执行器,完成后关闭执行器。
细节:
在适当的上下文中,构造并保留新的任务调度器:
并将新的任务调度器示例用于心跳:
申请完成后,关闭执行者: