SchedulerFactory使用

阅读更多

  首先创建SchedulerFactory对象,因为SchedulerFactory是一个接口,一般可以用他的一个实现类

StdSchedulerFactory

 

ScheDulerFactory scheDulerFactory = new StdSchedulerFactory();

接着是创建JobDetail ;

JobDetail jobDetail = new JobDetail("jobName" , "jobGroup" , Class) ;

分别是任务的名,任务的组,需要执行的任务class,这个class必须是实现quartz.的job接口,接口下的execute方法就是执行的任务,比如

pulbic class mainJbo implements Job{

   public void execute(){

      dosomething... ;

   }

}

 

那么传入参数的的Class就应该是mainJob.class

 

 

接着就需要定义触发器,也就是什么时候触发

CronTrigger trigger = new CronTrigger("jobName" ,"triggerGroup");

trigger.setCronExpression(time);

这里的时间格式是一个字符串,具体的格式可以参考

http://dwj147258.iteye.com/blog/2350795中的时间规则配置

最后启动

Scheduler scheduler = scheDulerFactory.getScheduler();

scheduler.scheduleJob(jobDetail ,trigger);

if(!scheduler.isShutDown()){

      scheduler.start();

}

 

完整的创建任务代码如下:

 

 

public void startTask(){
		try {
			Scheduler sched = schedulerFactory.getScheduler();
			Class cla = Class.forName(clazzName);
			JobDetail jobDetail = JobBuilder.newJob(cla).withIdentity(new JobKey(jobName , "TASK_GROUP")).build();
			
			Trigger trigger = TriggerBuilder.newTrigger()
					.withIdentity(new TriggerKey(jobName, "TRIGGERGROUIP"))
					.startNow()
					.withSchedule(CronScheduleBuilder.cronSchedule(timeCron))
					.build();
			sched.scheduleJob(jobDetail ,trigger) ;
			if(!sched.isShutdown()){
				sched.start() ;
			}
		} catch (Exception e) {

		}
	}

 

 

 

如果要停止这一个任务调度:

         Scheduler schedulerscheDulerFactory .getScheduler();

            

            sched.pauseTrigger("jobName", triggerGroup);// 停止触发器 

            

            sched.unscheduleJob("jobName", triggerGroup);// 移除触发器 

            

 

            sched.deleteJob("jobName", jobGroup);// 删除任务 

 

End

 

你可能感兴趣的:(任务调度,Scheduler)