websocket结合springboot定时推送,实时监控JVM系统负载

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

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标记的方法,是不能有参数,不然会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值