提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
websocket结合springboot的注解Scheduled实现定时推送,使用服务端定时推送
注意事项;
开发简单监控JVM监控功能
提示:以下是本篇文章正文内容,下面案例可供参考
一、代码展示
代码如下(示例):
/**
* springboot 继承websocket 定时推送 实时监控JVM负载
*/
@Controller
public class V4ServerInfoController {
@Autowired
private WebSocketService webSocketService;
/**
* @MessageMapping(value): value:订阅路径,对应js中subscribe订阅
*/
@MessageMapping("/topic/server_info")
public void ScheduledPush(){
webSocketService.ScheduledPush();
}
}
Service层
代码如下(示例):
/**
* springboot 继承websocket 定时推送 实时监控JVM负载
*/
@Scheduled(fixedRate = 2000) //fixedRate:指定多少毫秒定时执行。
public void ScheduledPush() {
int processors = Runtime.getRuntime().availableProcessors();
long freeMem = Runtime.getRuntime().freeMemory();//空闲内存
long maxMem = Runtime.getRuntime().maxMemory();//最大内存
String message = String.format("JVM返回的处理器数:%s,空闲内存:%s,最大内存:%s",processors,freeMem,maxMem);
System.out.println(new OutMessage(message));
}
运行结果
注意事项
1、在controller的类方法上标注 @Scheduled(fixedRate = 3000) 表示这个方法会定时执行
fixedRate表示是多少毫秒 3000就3秒
2、需要在springboot启动类上@EnableScheduling
3、被注解@Scheduled标记的方法,是不能有参数,不然会报错