Quartz的动态增删改查

发表时间:2017-07-11 17:11:24 浏览量( 21 ) 留言数( 0 )

学习目标:

1、了解Java的历史

2、为什么要学习Java语言

3、端正学习态度


学习过程:

我们对Job和Trigger可以进行管理,具体的方法如下:

	     	//是否存在
	     	sched.checkExists(new JobKey("myJob", "group1"));
	     	sched.checkExists(new TriggerKey("myTrigger22", "group22"));
			
			//~暂停 触发器
			sched.pauseTrigger(new TriggerKey("myTrigger22", "group22"));
			//~暂停 工作
			sched.pauseJob(new JobKey("myJob", "group1"));
			
			
			//~ 添加或者job
			JobBuilder job1 = JobBuilder.newJob(HelloJob.class);
	        //与要替换的任务具有相同的name与group
	        job1.withIdentity("name1", "group1");
	        //这里一定设为true
	        job1.storeDurably(true);
	        JobDetail d2 = job1.build();
	        //替换
	        sched.addJob(d2, true);
	        
	        //替换Trigger
	        // Define a new Trigger 
	        Trigger triggernew = newTrigger()
	            .withIdentity("newTrigger", "group1").forJob(job)
	            .startNow()
	            .build();
	        // tell the scheduler to remove the old trigger with the given key, and put the new one in its place
	        sched.rescheduleJob(new TriggerKey("oldTrigger", "group1"), triggernew);
	        
	        //添加 Trigger
	     	Trigger triggerh = newTrigger().withIdentity("myTrigger22", "group22").forJob(job).startNow().withSchedule(simpleSchedule().withIntervalInSeconds(40).repeatForever()).build();
	     	sched.scheduleJob(triggerh);
	     	
	     	//删除,删除之前先暂停了。
	     	sched.deleteCalendar("");//删除日期
	     	sched.deleteJob(JobKey.jobKey("myJob", "group1"));
	        sched.unscheduleJob(TriggerKey.triggerKey("myTrigger22", "group22"));// 移除触发器  

	     	
	     	//查询
	     	List<String> tt= sched.getCalendarNames();
	     	List<JobExecutionContext>  temps=sched.getCurrentlyExecutingJobs();//不支持集群
	     	
	     	for(JobExecutionContext t:temps) {
	     		System.out.println(t.getJobDetail().getKey());
	     	}