2013-10-03 4 views
1

Привет Я создал хрон и его работы хорошо с помощьюКварц CronTrigger терпит неудачу

org.springframework.scheduling.quartz.SimpleTriggerBean 

, но когда я планировать свою работу, используя CronTrigger курок работы Didnt вообще ни он бросить любую ошибку ниже моя весна конфигурации и класс Job.

<bean id="cronJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
     <property name="jobDetail" ref="runBillingJob" /> 
     <property name="cronExpression" value="0 0 0 * * ?"/> 
</bean> 

    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
     <property name="jobDetails"> 
      <list> 
       <ref bean="runTestJob" /> 
      </list> 
     </property> 

     <property name="triggers"> 
      <list> 
       <ref bean="cronJobTrigger" /> 
      </list> 
     </property> 
    </bean> 

Ниже мой метод испытания:

@SuppressWarnings("unchecked") 
protected void executeInternal(JobExecutionContext context) 
     throws JobExecutionException { 
    List<JobExecutionContext> jobs = null; 
    try { 
     jobs = context.getScheduler().getCurrentlyExecutingJobs(); 
     for (JobExecutionContext job : jobs) { 
      if (job.getTrigger().equals(context.getTrigger()) 
        && !job.getJobInstance().equals(this)) { 
       logger.trace("There's another instance running, so leaving: " 
         + this); 
       return; 
      } 
     } 
     logger.info("Create a BillingService instance..."); 

    } catch (SchedulerException e) { 
     logger.error("", e); 
     return; 
    } 

    try { 
     triggerToController(); 
    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

Я предполагаю, что вы сослались старт на SchedulerFactoryBean и ждали до полуночи для вашего выражения хрон, чтобы вызвать? – darrenmc

+0

У вас есть ссылка на runBillingJob, но я не вижу, где он определен. См. Мой ответ ниже. –

ответ

0

Попробуйте это:

<bean id="cronJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
     <property name="jobDetail" ref="runBillingJob" /> 
     <property name="cronExpression" value="0 0 0 * * ?"/> 
    </bean> 
    <bean id="runBillingJob" class="org.springframework.scheduling.quartz.JobDetailBean"> 
     <property name="jobClass" value="your.package.YourClass" /> 
    </bean> 
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
     <property name="triggers"> 
      <list> 
       <ref bean="cronJobTrigger" /> 
      </list> 
     </property> 
    </bean> 
Смежные вопросы