2016-07-19 2 views
1

누군가 석영 스케쥴러에 동일한 문제가 있는지 묻고 싶습니다. 나는 그룹 이름을 설정 한 Trigger와 JobKeys로 Jobs를 만들었습니다. 그러나 내가 설정 한 그룹을 출력 할 때는 항상 DEFAULT입니다.Quartz Scheduler : 작업을 함께 그룹화하는 방법?

어떻게이 그룹 이름을 설정하면 마지막으로 작업을 그룹화하고 가장 중요한 것은 지정된 그룹 만 취소 할 수 있습니까?

public void unscheduleByGroupname(String groupName) throws SchedulerException { 
    for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) { 
     scheduler.unscheduleJob(new TriggerKey(jobKey.getName(), jobKey.getGroup())); 
    } 
} 

입력 :

TriggerKey tKey = new TriggerKey("Trigger:" + jobName + "-Somename:" + object.toString(), 
      "Group:" + jobName + "-Somename:" + object.toString()); 
    JobKey jKey = new JobKey("Job:" + jobName + "-Somename:" + object.toString(), 
      "Group:" + jobName + "-Somename:" + object.toString()); 
    JobDetail job = JobBuilder.newJob(Somename.class).withDescription("Somename") 
      .withIdentity(jKey).build(); 
    Trigger trigger = TriggerBuilder.newTrigger().forJob(jKey).startAt(new Date()).withIdentity(tKey).build(); 

출력 기능 :

for (String groupName : scheduler.getJobGroupNames()) { 
     for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) { 

      String jobName = jobKey.getName(); 
      String jobGroup = jobKey.getGroup(); 

      // get job's trigger 
      List<Trigger> triggers = (List<Trigger>) scheduler.getTriggersOfJob(jobKey); 
      Date nextFireTime = triggers.get(0).getNextFireTime(); 
      System.out.println("[jobName] : " + jobName + " [groupName] : " + jobGroup + " - " + nextFireTime);} 

출력 :

[jobName] : Job:-Somename:13 [groupName] : DEFAULT - Tue Jul 19 13:48:40 CEST 2016 
[jobName] : Job:-Somename:14 [groupName] : DEFAULT - Tue Jul 19 13:49:11 CEST 2016 
[jobName] : Job:-Somename:15 [groupName] : DEFAULT - Tue Jul 19 13:49:41 CEST 2016 
[jobName] : Job:-Somename:16 [groupName] : DEFAULT - Tue Jul 19 13:50:11 CEST 2016 

답변

0

은 당신이보고있는 작업의 정체성이 같은 유사한 코드로 , 그룹 정보를 추가 할 수 있습니다. 나는 아래의 방법을 연결하고, 그것은 나를 위해 일한다. (나는 그 그룹이 내가 설정 한 원하는 이름이라는 것을 알 수있다.)

JobDetail job = JobBuilder.newJob(ScheduledJob.class) 
      .withIdentity("JOB KEY", "GROUP NAME") 
      .withDescription("Job description") 
      .usingJobData(dataMap) 
      .build(); 
관련 문제