2016-11-16 1 views
1

私はクォーツスケジューラにジョブを追加しています。その後、添付のデバッグ印刷ジョブ機能を呼び出します。それは仕事を列挙しません。 getCurrentlyExecutingJobs()への関数呼び出しはmaxを返すように制限されている可能性があります。 10の仕事の?クォーツスケジューラにジョブがありません

public void scheduleManagementEmail(ManagementEmailConfig managementEmailConfig, Scheduler scheduler) throws SchedulerException 
{ 
    logger.debug("Scheduling Management Email " + 
    managementEmailConfig.getManagementEmailConfigId()); 

    String jobKey = "SendManagementEmailJob_" +  
    managementEmailConfig.getManagementEmailConfigId(); 
    Class<? extends Job> jobClass = SendManagementEmailJob.class; 
    JobDetail job = JobBuilder.newJob(jobClass).withIdentity(new JobKey(jobKey)).build(); 
    Trigger trigger = sendManagementEmailJob.getTriggerWithSchedule(managementEmailConfig); 
    trigger.getJobDataMap().put("managementEmailConfigId", managementEmailConfig.getManagementEmailConfigId()); 
    if (!scheduler.checkExists(new JobKey(jobKey))) 
    { 
     scheduler.scheduleJob(job, trigger); 
    } 
    debugPrintJobs(); 
} 

public void debugPrintJobs() { 
    try { 
     logger.debug("Quartz Jobs"); 
     Scheduler s_scheduler = this.getJobScheduler(); 
     List<JobExecutionContext> currentJobs = s_scheduler.getCurrentlyExecutingJobs(); 
    for (JobExecutionContext jobCtx : currentJobs) { 
     JobKey jobKey = jobCtx.getJobDetail().getKey();    
     JobDetail jobDetail = s_scheduler.getJobDetail(jobKey); 
     List<? extends Trigger> triggers = s_scheduler.getTriggersOfJob(jobKey); 

     Date nextFireTime = null; 
     if (triggers.size() > 0) 
     { 
      nextFireTime = triggers.get(0).getNextFireTime(); 
     } 
     logger.debug("Name= "+ jobKey.getName() + " Group=" + jobKey.getGroup() + " NextFireTime=" + nextFireTime); 
    } 
} catch (Exception e) { 
    logger.debug("debugPrintJobs:" + e.getMessage()); 
} 
+1

をあなたが私たちに示すコードではありません。 –

+0

コードのインデントを改善してもらえますか?読むのはとても難しいです。 –

答えて

1

メソッドgetCurrentlyExecutingJobs()は、実行中のジョブのみを返します。スケジュールされたすべてのジョブは返しません。
は、あなたがこのような何か行う必要があり、すべてのスケジュールされたジョブを取得するには:「私は石英スケジューラにジョブを追加してい」

Scheduler scheduler = getScheduler(); 
    try { 
     // All scheduled jobs 
     for (String groupName : scheduler.getJobGroupNames()) { 
      for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) { 
       JobDetail jobDetail = scheduler.getJobDetail(jobKey); 
       final List<? extends Trigger> triggersOfJob = scheduler.getTriggersOfJob(jobKey); 
       // Do something with the info you just got 
       // ... 
      } 
     } 
    } catch (SchedulerException e) { 
     log.error("Retrieving jobs", e); 
    } 
関連する問題