Quartz任务调度的简单应用

Quartz框架主要分为三部分:
1 任务
2 触发器
3 调度器
谢了一个简单例子,大家可以看下

public class RemindJob implements Job {
	 int[]param=new int[]{1,2,3,4,5,6,7};

	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
	   for(int i=0;i<param.length;i++){
		   if(param[i]<10){
			   param[i]=5;
		   } 
		   System.out.println(param[i]);
	   }
	   
		
	}

}

创建一个任务类,下面是一个测试类

public class TestQuartz {
	  public static void main(String[] args) throws SchedulerException, ParseException, InterruptedException {
	        //创建job 任务
	JobDetail job=new JobDetail("myJob","A",RemindJob.class);
	      //创建触发器-trigget 
	 SimpleTrigger trigger=new  SimpleTrigger("myTrigger",
			 SimpleTrigger.REPEAT_INDEFINITELY,3000);
	 //秒 分 时 日 月 周 年  日和周如果不是实际数,必须有一个是?,一个是*来代表
     //中划线 范围
     //逗号  列表
     //除号  增量
	 CronTrigger cronTrigger=new CronTrigger("myCronTrigger","B","0/3 * * ? * * ");
	// trigger.setStartTime(new Date(System.currentTimeMillis()+1000));
	 //创建调度器
	 //创建Scheduler工程
	  SchedulerFactory factory=new StdSchedulerFactory();
	  Scheduler scheduler=factory.getScheduler();
	//粘合任务和调度器
	//  scheduler.scheduleJob(job,trigger);
	  scheduler.scheduleJob(job,cronTrigger);
      scheduler.start();
      Thread.sleep(2000000);
      scheduler.shutdown();
	  }
}

CronTrigger(“myCronTrigger”,“B”,"0/3 * * ? * * ");里面的"0/3 * * ? * * "非常有意思,这个是6个,分别是秒,分,时,日,月,周.当年也可以在加个年。其中日和周可以用?代替,代表每一天,每一周,但只能存在一个问号,另一个必须用*代替。
秒,分,时分别可用,和—来标识,如0-10 13 14 * * ? 这个就代表每周的14点13分0至10.
很简单,每隔三秒执行一次,将数组里面的值如果小于10,就都赋值成为5.
这个定时任务应用就比较广泛了,比如媒体定时发布新闻,设置哪一天定时发布,那就可以写一个方法,每隔几秒钟查询一次数据库,当然查出来的数据是一个集合。当定时的时间小于等于系统时间,就可改变状态发布了

猜你喜欢

转载自blog.csdn.net/javaChengXuY/article/details/83242308