zoukankan      html  css  js  c++  java
  • 自动化框架---定时任务(执行BAT脚本进行构建)

    定时任务代码:

    public class QuartzJob implements Job{
        static Logger log=Logger.getLogger(QuartzJob.class);
        public void killProcess() {  
            Runtime rt = Runtime.getRuntime();  
            Process p = null;  
            try {  
                rt.exec("cmd.exe /C start wmic process where name='cmd.exe' call terminate");  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }
        @Override
        public void execute(JobExecutionContext arg0) throws JobExecutionException {
            String[] cmd={"cmd.exe","/C","start","/b",System.getProperty("user.dir")+File.separator+"build.bat"};
            Process process = null;
            try {
                process = Runtime.getRuntime().exec(cmd);
                InputStream in=process.getInputStream();
                int c=0;
                while(c!=-1)
                {
                    try {
                        c=in.read();                    
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                in.close();
                process.waitFor();
                int i = process.exitValue();  
                if (i == 0) {  
                    System.out.println("执行完成.");  
                    TestReport report=new TestReport();
                    System.out.println(report.getFailedTests().size()+""+report.getSkippedTests().size()+""+report.getPassedTests().size());
                } else {  
                    System.out.println("执行失败.");  
                }  
                process.destroy();  
                process = null;
                new QuartzJob().killProcess();
            } catch (IOException e1) {
                e1.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }       
    
            
        }  
        
    }

    执行任务代码:

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.quartz.CronTrigger;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerException;
    import org.quartz.SchedulerFactory;
    import org.quartz.impl.JobDetailImpl;
    import org.quartz.impl.StdSchedulerFactory;
    import org.quartz.impl.triggers.CronTriggerImpl;
    
    public class Runjob {     
        
               
         
         public static void RunJob(String time) throws SchedulerException, ParseException {
             SchedulerFactory sf = new StdSchedulerFactory(); 
             Scheduler sched = sf.getScheduler();
             @SuppressWarnings("deprecation")
             JobDetail job =new JobDetailImpl("job1", "group1", QuartzJob.class);         
             @SuppressWarnings("deprecation")
             CronTrigger trigger = new CronTriggerImpl("trigger1", "group1");  
             ((CronTriggerImpl) trigger).setCronExpression(time);  
             Date ft = sched.scheduleJob(job, trigger);  
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");  
             System.out.println(  
            job.getKey() + " 已被安排执行于: " + sdf.format(ft) + ",并且以如下重复规则重复执行: " + trigger.getCronExpression());  
             
             // 开始执行,start()方法被调用后,计时器就开始工作,计时调度中允许放入N个Job  
             sched.start();  
             try {  
                 // 主线程等待一分钟  
                 Thread.sleep(60L * 1000L);  
             } catch (Exception e) {  
             }  
             // 关闭定时调度,定时器不再工作  
             //sched.shutdown(true);        
             
        }
         
         public static void main(String[] args) throws Exception{
            RunJob("0 07 22 ? * *");
        }    
         
    }
  • 相关阅读:
    jQuery jsonp(转载)
    vue jsonp (转载)
    Win10系统 开机总是黑屏一分钟 然后才进入解锁界面?
    Win10怎么取消开机密码
    Qt启动报错“0xc0000005”错误?
    公司转让债务问题怎么处理
    从车载激光点云数据轨迹数据中提取坐高斯标数据
    macbook air和pro的ppi
    任务管理器是灰色的
    python列表删除某个元素
  • 原文地址:https://www.cnblogs.com/mlmy/p/6341440.html
Copyright © 2011-2022 走看看