package com.test.task;
import org.apache.log4j.Logger;
import javax.management.AttributeList;
import javax.management.MBeanServer;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import java.lang.management.ManagementFactory;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class LogTask {
private int initialDelay = 3;
private int period = 3;
private Logger logger = Logger.getLogger(LogTask.class);
private MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
public void init() {
logger.info("初始化mongo线程池监控日志");
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(3);
scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
public void run() {
try {
Set<ObjectInstance> set = mbeanServer.queryMBeans(new ObjectName("org.mongodb.driver:type=ConnectionPool,*"), null);
for (ObjectInstance oi : set) {
String className = oi.getClassName();
if (className.contains("mongo")) {
ObjectName objectName = oi.getObjectName();
logger.info(objectName);
String[] attrs = new String[]{"CheckedOutCount", "Host", "Port",
"MinSize", "MaxSize", "Size", "WaitQueueSize"};
for (String attr : attrs) {
logger.info(attr + "==" + mbeanServer.getAttribute(objectName, attr));
}
}
}
} catch (Exception e) {
e.printStackTrace();
logger.error("执行日志打印失败", e);
}
}
}, initialDelay, period, TimeUnit.SECONDS);
}
public int getInitialDelay() {
return initialDelay;
}
public void setInitialDelay(int initialDelay) {
this.initialDelay = initialDelay;
}
public int getPeriod() {
return period;
}
public void setPeriod(int period) {
this.period = period;
}
}
spring-mvc-mongo-monitor
需积分: 15 163 浏览量
2017-07-14
17:37:33
上传
评论
收藏 9KB RAR 举报
popsidelee
- 粉丝: 36
- 资源: 41
最新资源
- mysql基本查询语句学习.doc
- mysql查询语句汇总基本语法.doc
- 图片.pdf
- Lsky-pro的token获取程序
- ABAQUS混凝土本构曲线数据(C25、C30、C35、C40、C45、C50...)
- 基于Python Flask框架的金融项目设计源码
- Campus一款简单的后台管理系统,RuoYi-Vue简单版,快速开发框架,适合大学生开发毕设,或其他小项目。使用Spring
- 一个Vue3 Ts Node.js的通用后台管理系统后端
- 1.实现定义学生成绩记录,记录包括字段有:序号、学生姓名、学号、课程名称、成绩。 2.实现学生成绩管理系统的菜单管理功能,允许
- 基于Java的WebBase业务系统框架设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈