⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 systeminfopublisher.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
字号:
/*------------------------------------------------------------------------------Name:      SystemInfoPublisher.javaProject:   xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE fileComment:   Code for a client to publish system infos to xmlBlasterVersion:   $Id: SystemInfoPublisher.java 14862 2006-03-07 19:20:19Z goetzger $------------------------------------------------------------------------------*/package http.dhtml.systemInfo;import java.util.logging.Logger;import org.xmlBlaster.util.Global;import org.xmlBlaster.util.XmlBlasterException;import org.xmlBlaster.client.I_XmlBlasterAccess;import org.xmlBlaster.client.key.PublishKey;import org.xmlBlaster.client.qos.PublishQos;import org.xmlBlaster.util.MsgUnit;import java.util.Random;/** * Publish system infos to xmlBlaster. * <br /> * Use this as a command line tool to publish cpu load and memory load. * <br /> * Invoke examples:<br /> * <pre> *    jaco html.systemInfo.SystemInfoPublisher * </pre> */public class SystemInfoPublisher{   private static final String ME = "SystemInfoPublisher";   private final Global glob;   private static Logger log = Logger.getLogger(SystemInfoPublisher.class.getName());   private I_XmlBlasterAccess con;   private Random random = new Random();   /**    * Constructs the SystemInfoPublisher object.    * <p />    * @param args      Command line arguments    */   public SystemInfoPublisher(Global glob) {      this.glob = glob;      /*      String osName = System.getProperty("os.name");     // "Linux" "Windows NT" ...      if (!osName.startsWith("Linux")) {         log.severe("This system load publisher runs only on Linux, sorry about that\n" +                   "Note that you can use own Perl or C++ or Java publishers to do this task");         System.exit(1);      }      */      setUp();  // login      while(true) {         try {            int val = random.nextInt(6000); // between 0 and 6 sec            if (val < 2000) val = 2000;            try { Thread.sleep(val); } catch( InterruptedException i) {}            int cpu = getCpuload();            publish("cpuinfo", cpu);            val = random.nextInt(6000); // between 0 and 6 sec            if (val < 2000) val = 2000;            try { Thread.sleep(val); } catch( InterruptedException i) {}            int mem = getMeminfo();            publish("meminfo", mem);         }         catch (XmlBlasterException e) {            log.severe(e.getMessage());         }      }      //tearDown();  // logout   }   /**    * The Linux way ...    * <p />    * For now it is a random hack    */   private int getCpuload() throws XmlBlasterException {      // String text = FileUtil.readAsciiFile("/proc/cpuinfo");      // log.info("cpuinfo=\n" + text);      return random.nextInt(100); // hack!   }   /**    * The Linux way ...    * <p />    * For now it is a random hack    */   private int getMeminfo() throws XmlBlasterException {      // String text = FileUtil.readAsciiFile("/proc/meminfo");      // log.info("meminfo=\n" + text);      int val = random.nextInt(100); // hack!      if (val < 11) val = 11;      if (val > 96) val = 96;      return val;   }   /**    * Connect to xmlBlaster and login    */   private void setUp() {      try {         con = glob.getXmlBlasterAccess();         con.connect(null, null); // Login to xmlBlaster      }      catch (Exception e) {          log.severe(e.toString());          e.printStackTrace();      }   }   /**    * Logout from xmlBlaster    */   private void tearDown() {      con.disconnect(null);   }   /**    * Construct a message and publish it.    */   private void publish(String oid, int value) {      if (con == null)         return;      String content = "" + value;      /*      String xmlKey = "<key oid='" + oid + "' contentMime='text/plain' contentMimeExtended='systemInfo'>\n" +                      "   <systemInfo />" +                      "</key>";      */      PublishKey key = new PublishKey(glob, oid, "text/plain", "systemInfo");      key.setClientTags("<systemInfo />");      PublishQos qos = new PublishQos(glob);      MsgUnit msgUnit = new MsgUnit(key, content.getBytes(), qos);      try {         con.publish(msgUnit);      } catch(XmlBlasterException e) {         log.warning("XmlBlasterException: " + e.getMessage());      }      log.info("Published message " + oid + " with value " + content);   }   /**    * java html.systemInfo.SystemInfoPublisher    */   public static void main(String args[]) {      new SystemInfoPublisher(new Global(args));   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -