java中quartz调治在一些按时任务(job)的入门级应用
当前位置:以往代写 > JAVA 教程 >java中quartz调治在一些按时任务(job)的入门级应用
2019-06-14

java中quartz调治在一些按时任务(job)的入门级应用

java中quartz调治在一些按时任务(job)的入门级应用

Quartz 执行详解:http://quartz-scheduler.org/   去下载相应的jar包 在maven中可直接把依赖拷贝过来复制到pom中去。

详细法则可查询quartz的文档

下面是一个很是具体的实例:

1.首先把需要执行的任务写到execute中去 并实现job

package job;  
import java.util.Date;    
       
import org.quartz.Job;    
import org.quartz.JobExecutionContext;    
import org.quartz.JobExecutionException;    
/**   
* 需要执行的任务   
* @author clq   
*   
*/  
public class MyJob implements Job {    
       
   @Override  
   //把要执行的操纵,写在execute要领中    
   public void execute(JobExecutionContext arg0) throws JobExecutionException {    
       System.out.println("测试Quartz"+new Date());    
   }    
}    
2.挪用任务需要实现的类  
package job;  
import org.quartz.Scheduler;  
import org.quartz.SchedulerFactory;  
import org.quartz.impl.JobDetailImpl;  
import org.quartz.impl.StdSchedulerFactory;  
import org.quartz.impl.triggers.CronTriggerImpl;  
       
public class CronTriggerTest2 {  
      
public static void main(String[] args) {  
      
//通过SchedulerFactory得到一个调治器  
SchedulerFactory schedulerfactory=new StdSchedulerFactory();    
    Scheduler scheduler=null;    
       try{  
       //获取调治器实例  
       scheduler=schedulerfactory.getScheduler();    
         
            // 指明job的名称,地址组的名称,以及绑定job类    建设jobDetail实例,绑定Job实现类    
       JobDetailImpl jobDetail=new JobDetailImpl("job1", "jgroup1", MyJob.class);  
      
       //界说调治出发法则 每隔2秒执行一次  
       CronTriggerImpl cornTrigger=new CronTriggerImpl("jobname","jobgroup");  
      
       //括号内里的*号依此为秒,分,时,天,周,月,年  
       //内里有详细的利用法则,很是机动  
       cornTrigger.setCronExpression("0/2 * * * * ? *");  
      
       //把功课和触发器注册到任务调治中    
       scheduler.scheduleJob(jobDetail, cornTrigger);  
       //启动调治  
      
       scheduler.start();    
       }catch(Exception e){  
       e.printStackTrace();  
       }  
}  
}

查察本栏目

CronTriggerTest2  这个类由于内里的许多要领已经被遗弃,这是一个新写的实现类,其成果和上面的一模一样

package job;  
       
import org.quartz.JobBuilder;  
import org.quartz.JobDetail;    
import org.quartz.Scheduler;    
import org.quartz.SchedulerFactory;    
import org.quartz.SimpleScheduleBuilder;  
import org.quartz.Trigger;  
import org.quartz.TriggerBuilder;  
import org.quartz.TriggerKey;  
import org.quartz.impl.StdSchedulerFactory;    
/**   
* 挪用任务的类   
* @author clq 
*   
*/  
public class CronTriggerTest {   
  public static void main(String[] args) {    
         
      SchedulerFactory schedulerfactory=new StdSchedulerFactory();    
      Scheduler scheduler=null;    
      try{    
          scheduler=schedulerfactory.getScheduler();    
          JobDetail job = JobBuilder.newJob(MyJob.class)  
          .withIdentity("myJob")  
          .build();  
      
          Trigger trigger = TriggerBuilder.newTrigger()  
          .withIdentity(TriggerKey.triggerKey("myTrigger", "myTriggerGroup"))  
          .withSchedule(SimpleScheduleBuilder.simpleSchedule()  
              .withIntervalInMilliseconds(2000)  
              .repeatForever())  
          .startNow()  
          .build();  
      
          scheduler.scheduleJob(job, trigger);    
//       启动调治    
          scheduler.start();    
      }catch(Exception e){    
          e.printStackTrace();    
      }    
}    
}

在某种意义上来领略一个job指的就是一个单线程,这个在开拓中的利用更是普遍,各人可以当真进修一下quartz夫人用法。

在执行上述要领后,你会发明措施会很是不变的去执行MyJob中本身需要去执行的要领,每隔2s执行一次

    关键字:

在线提交作业