MBaen+Timer=减少数据库调用

来源:互联网 发布:爱股轩是什么软件 编辑:程序博客网 时间:2024/06/07 18:00

定义所需接口

public interface HomeDataMBean {public void getDataCount();}

实现接口

public class HomeData implements HomeDataMBean {private static ConcurrentHashMap<String, Integer> dataMap = new ConcurrentHashMap<String, Integer>();public static ConcurrentHashMap<String, Integer> getDataMap() {return dataMap;}@Overridepublic void getDataCount() {Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {//每隔4小时更新Map中的数据}}, 1000, 14400000);}}

初始化

try {HomeData homeData = new HomeData();MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();ObjectName name = new ObjectName("com.inforstack.clinicalsense.jmx:type=HomeData");mbs.registerMBean(homeData, name);// ObjectName, 调用getDataCount,,调用方法所需参数,参数类型//我写的是无参方法所以传递两个nullmbs.invoke(name, "getDataCount", null, null);} catch (Exception e) {e.printStackTrace();}

终端命令

jconsole




0 0