2015-12-02 95 views
0

以下是我與quatz集成與春天,但它不工作,即沒有得到觸發作業。我可以看到石英在少量MS中檢查MySQL數據庫,這意味着與MYSQL的連接沒問題,記錄也插入到表中,但下面提到的Sysout不在控制檯中。請指教,這可能是根本原因 -Quatz工作沒有在春季與石英

從Spring配置XML

<bean id="myTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> 
     <property name="corePoolSize" value="5" /> 
     <property name="maxPoolSize" value="50" /> 
     <property name="WaitForTasksToCompleteOnShutdown" value="true" /> 
    </bean> 

    <bean id="exampleBusinessObjectJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
     <property name="jobDetail"> 
      <bean name="exampleBusinessObjectJob" class="org.springframework.scheduling.quartz.JobDetailBean"> 
       <property name="name" value="exampleBusinessObjectJob"/> 
       <property name="jobClass" value="com.aexp.mars.job.ExampleJob"/> 
      </bean> 
     </property> 
     <property name="cronExpression" value="0 */1 * * * ?"/> 
    </bean> 

    <bean id="exampleBusinessObjectJob" class="com.aexp.mars.job.ExampleJob"> 
    </bean> 

    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 

     <property name="applicationContextSchedulerContextKey" value="applicationContext"/> 

     <property name="autoStartup" value="true"/> 

     <property name="triggers"> 
      <list> 
       <ref bean="exampleBusinessObjectJobTrigger" /> 
      </list>   
     </property> 
     <property name="quartzProperties"> 
      <props> 
       <prop key="org.quartz.scheduler.instanceName">MARS_SCHEDULER</prop> 
       <prop key="org.quartz.scheduler.instanceId">AUTO</prop> 
       <prop key="org.quartz.scheduler.instanceId">10000</prop> 
       <prop key="org.quartz.scheduler.instanceId">600000</prop> 
       <prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop> 
       <prop key="org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread">true</prop> 
       <prop key="org.quartz.threadPool.threadCount">3</prop> 
       <prop key="org.quartz.threadPool.threadPriority">5</prop> 
       <prop key="org.quartz.jobStore.misfireThreshold">60000</prop> 
       <prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop> 
       <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop> 
       <prop key="org.quartz.jobStore.useProperties">false</prop> 
       <prop key="org.quartz.jobStore.dataSource">marsDS</prop> 
       <prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop> 
       <prop key="org.quartz.jobStore.isClustered">true</prop> 
       <prop key="org.quartz.jobStore.clusterCheckinInterval">15000</prop> 
       <prop key="org.quartz.jobStore.maxMisfiresToHandleAtATime">20</prop> 
       <prop key="org.quartz.dataSource.marsDS.driver">com.mysql.jdbc.Driver</prop> 
       <prop key="org.quartz.dataSource.marsDS.URL">{server_url}</prop> 
       <prop key="org.quartz.dataSource.marsDS.user">{user_name}</prop> 
       <prop key="org.quartz.dataSource.marsDS.password">{password}</prop> 
       <prop key="org.quartz.dataSource.marsDS.maxConnections">10</prop> 
       <prop key="org.quartz.dataSource.marsDS.validationQuery">select 1</prop> 
       <prop key="org.quartz.plugin.shutdownHook.class">org.quartz.plugins.management.ShutdownHookPlugin</prop> 
       <prop key="org.quartz.plugin.shutdownHook.cleanShutdown">false</prop> 
      </props> 
     </property> 
     <property name="taskExecutor" ref="myTaskExecutor" /> 
     <property name="jobFactory"> 
      <bean class="com.aexp.mars.job.MarsSpringBeanJobFactory"/> 
     </property> 
    </bean> 

** Java類 - **

public class ExampleJob { 

    private static final Logger LOG = LoggerFactory.getLogger(ExampleJob.class); 


    protected void executeInternal(JobExecutionContext ctx) throws JobExecutionException { 
      System.out.println("Job is running"); 
      LOG.info("Job ran"); 
    } 

    public void execute(JobExecutionContext ctx) throws JobExecutionException { 
      System.out.println("Job#1 is running"); 
      LOG.info("Job ran"); 
    } 

} 
+0

你正在使用哪個版本的Quartz和Spring? – Aurelien

+0

Spring 3.2和Quartz 1.8.6 – Raj

+0

問題現在已經解決。感謝所有幫助! – Raj

回答

1

得到的情況。我改變了cron表達式的值,每隔1分鐘運行一次,但它仍然被設置爲我以前的值(即凌晨3點)。我添加下面的屬性,然後新的cron表達式開始工作..

<property name="overwriteExistingJobs" value="true"/>