使用quartz,定时任务,每3s执行一次示例

package test;

 

import java.text.ParseException;

import java.util.Date;

 

import org.quartz.CronTrigger;

import org.quartz.Job;

import org.quartz.JobDetail;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

import org.quartz.Scheduler;

import org.quartz.SchedulerException;

import org.quartz.SchedulerFactory;

 

public class TestJob implements Job{

       private static intcnt = 0;

       

       @Override

       public voidexecute(JobExecutionContext context) throws JobExecutionException {

              System.out.println("TestJob" + (++cnt) + " Run! " +new Date());    

              Scheduler scheduler=context.getScheduler();//获取执行的Scheduler

              try {//执行3次之后关闭

                     if(!scheduler.isShutdown()&&cnt==3)//判断是否在执行

                            scheduler.shutdown();

              } catch(SchedulerException e) {

                     e.printStackTrace();

              }

       }

       

       

       public static voidmain(String [] args) throws SchedulerException, ParseException{

               SchedulerFactoryschedFact = new org.quartz.impl.StdSchedulerFactory();

        Scheduler sched = schedFact.getScheduler();

        sched.start();//调度器启动

         // 参数:任务名,任务组,任务执行类   ,任务执行类决定执行哪个execute方法

        JobDetail jobDetail = new JobDetail("TestJob",

                "TestJobGroup", TestJob.class);        

         //触发器

        CronTrigger trigger = newCronTrigger("TestJob","TestJobGroup");// 触发器名,触发器组

         //触发事件设定  

        trigger.setCronExpression("0/3 * * * * ? ");//每3s执行一次

         //将任务和触发器加入调度器,会执行execute方法

        sched.scheduleJob(jobDetail, trigger);        

 

       }

 

}

网上找教程,大致实现了功能,触发器的时间设置详解链接为:

http://www.open-open.com/lib/view/open1392211610489.html

大致理解:格式 [秒] [分] [小时] [日] [月] [周] [年]

0/n在 分 位置表示每几分钟执行一次

0/n在 时 位置表示每几小时执行一次

其余相同,*通配符,?表示不确定

你可能感兴趣的:(使用quartz,定时任务,每3s执行一次示例)