quartz(三):利用quartz定时执行运行环境检测

来源:互联网 发布:阿里云邮箱地址前缀 编辑:程序博客网 时间:2024/05/17 12:25

建立java工程并导入相关jar包,如下所示


完整案例代码如下:

==============JavaEnvironment.java=========================

package com.obtk.entitys;import java.io.Serializable;  /**  * 实体类,保存java运行环境信息  * @author Administrator  * 20160528  */  public class JavaEnvironment implements Serializable{        private static final long serialVersionUID = 1L;      private String userName;   //当前登录用户名      private String osName;     //操作系统名      private String osVersion;  //操作系统版本      private String osJaGou;    //操作系统架构      private String javaFactory;  //JAVA的厂商名      private String javaVersion;  //JAVA的版本号      private String userHome;     //当前登录用户的主目录      private String totalMemory;   //当前JVM的总内存      private String maxMemory;    //当前JVM最大可用内存      private String freeMemory;   //当前JVM可用的空闲内存            private String clientHostName;   //主机名      private String clientIP;         //ip地址            public String getClientHostName() {          return clientHostName;      }      public void setClientHostName(String clientHostName) {          this.clientHostName = clientHostName;      }      public String getClientIP() {          return clientIP;      }      public void setClientIP(String clientIP) {          this.clientIP = clientIP;      }            public String getFreeMemory() {          return freeMemory;      }      public void setFreeMemory(String freeMemory) {          this.freeMemory = freeMemory;      }      public String getJavaFactory() {          return javaFactory;      }      public void setJavaFactory(String javaFactory) {          this.javaFactory = javaFactory;      }      public String getJavaVersion() {          return javaVersion;      }      public void setJavaVersion(String javaVersion) {          this.javaVersion = javaVersion;      }      public String getMaxMemory() {          return maxMemory;      }      public void setMaxMemory(String maxMemory) {          this.maxMemory = maxMemory;      }      public String getOsJaGou() {          return osJaGou;      }      public void setOsJaGou(String osJaGou) {          this.osJaGou = osJaGou;      }      public String getOsName() {          return osName;      }      public void setOsName(String osName) {          this.osName = osName;      }      public String getOsVersion() {          return osVersion;      }      public void setOsVersion(String osVersion) {          this.osVersion = osVersion;      }      public String getTotalMemory() {          return totalMemory;      }      public void setTotalMemory(String totalMemory) {          this.totalMemory = totalMemory;      }      public String getUserHome() {          return userHome;      }      public void setUserHome(String userHome) {          this.userHome = userHome;      }      public String getUserName() {          return userName;      }      public void setUserName(String userName) {          this.userName = userName;      }      public String toString(){          return  userName+" \""+            osName+"\" "+           osVersion +" "+           osJaGou +" "+           userHome +" "+           clientHostName+" "+           clientIP+" \n"+           javaFactory +" "+           javaVersion +" "+           totalMemory +" "+           maxMemory +" "+           freeMemory+"\n-----------这是分隔线---------------\n"           ;            }  }  
===============EnvCheckService.java====================

package com.obtk.dao;import java.net.InetAddress;import java.net.UnknownHostException;import com.obtk.entitys.JavaEnvironment;public class EnvCheckService {public void printEnv(){try {              JavaEnvironment javaInfo=new JavaEnvironment();              javaInfo.setUserName(System.getProperty("user.name"));              javaInfo.setOsName(System.getProperty("os.name"));              javaInfo.setOsVersion(System.getProperty("os.version"));              javaInfo.setOsJaGou(System.getProperty("os.arch"));              javaInfo.setJavaFactory(System.getProperty("java.vendor"));              javaInfo.setJavaVersion(System.getProperty("java.version"));              javaInfo.setUserHome(System.getProperty("user.home"));                    javaInfo.setTotalMemory((Runtime.getRuntime().totalMemory())/1024.0/1024.0+"mb");              javaInfo.setMaxMemory(Runtime.getRuntime().maxMemory()/1024.0/1024.0+"mb");              javaInfo.setFreeMemory(Runtime.getRuntime().freeMemory()/1024.0/1024.0+"mb");              javaInfo.setClientIP(InetAddress.getLocalHost().getHostAddress());              javaInfo.setClientHostName(InetAddress.getLocalHost().getHostName());              System.out.println(javaInfo);          } catch (UnknownHostException e) {              e.printStackTrace();          }  }}
==================EnvCheckJob.java=================

package com.obtk.jobs;import java.util.List;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import com.obtk.dao.EnvCheckService;import com.obtk.dao.TaskDao;import com.obtk.entitys.TaskEntity;public class EnvCheckJob implements Job{private EnvCheckService checkServ;public void setCheckServ(EnvCheckService checkServ) {this.checkServ = checkServ;}public void execute(JobExecutionContext arg0) throws JobExecutionException {setCheckServ(new EnvCheckService());checkServ.printEnv();}}
测试类

package com.obtk.test;import java.util.Date;import org.quartz.CronTrigger;import org.quartz.JobDataMap;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.SchedulerFactory;import org.quartz.SimpleTrigger;import org.quartz.impl.StdSchedulerFactory;import com.obtk.jobs.DaJiaJob;import com.obtk.jobs.EnvCheckJob;public class TestCheckJob {public static void main(String[] args) {try {//创建一个任务JobDetail job=new JobDetail("remind task", "group2", EnvCheckJob.class);//创建一个crontrigger//创建一个触发器,每隔3s执行一次,重复4次,总共执行5次SimpleTrigger simTrig=new SimpleTrigger("dajiaTrig",4, 3000);//1s钟之后启动simTrig.setStartTime(new Date(System.currentTimeMillis()+1000));//得到调度者工厂SchedulerFactory factory=new StdSchedulerFactory();//由工厂得到调度者对象Scheduler sched=factory.getScheduler();//调度任务执行sched.scheduleJob(job, simTrig);sched.start();//启动一个单独线程Thread.sleep(15000); //睡眠15秒sched.shutdown();System.out.println("main方法结束了");} catch (SchedulerException e) {e.printStackTrace();}catch (Exception e) {e.printStackTrace();}}}









原创粉丝点击