2016-04-21 6 views
1

Ich baue einige crons, um zu laufen, eines der cron muss ich nach einiger Zeit ausführen, der Server hat begonnen.Das 'initial-delay'-Attribut darf nicht mit cron- und trigger-Tasks verwendet werden

<task:scheduled ref="myCron" 
      method="processData" cron="0/15 * * * * ?" initial-delay="45000"></task:scheduled> 

Ich brauche diesen Cron alle 15 Sekunden, was es tut. Aber ich muss diesen cron nach 45 Sekunden Server gestartet haben und nicht sofort.

Unten ist mein XSD,

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:task="http://www.springframework.org/schema/task" 

    xsi:schemaLocation=" 
      http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
      http://www.springframework.org/schema/task 
      http://www.springframework.org/schema/task/spring-task-3.2.xsd" 
    default-lazy-init="false"> 

Exception

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: the 'initial-delay' attribute may not be used with cron and trigger tasks 
+0

ich das gleiche Problem konfrontiert und löste es mit zwei geplanten Funktionen:Sie können die Fest Verzögerung Implementierung, zum Beispiel verwenden möchten : eins mit cron und das andere mit initialDelayString + fixedDelay. Siehe: http://stackoverflow.com/questions/14983486/cron-expression-with-initial-delay-quartz/37447050#37447050. –

Antwort

1

Vom code von ScheduledTasksBeanDefinitionParser können Sie sehen, dass cron und initial-delay nicht kompatibel sind:

if (hasInitialDelayAttribute && (hasCronAttribute || hasTriggerAttribute)) { 
       parserContext.getReaderContext().error(
         "the 'initial-delay' attribute may not be used with cron and trigger tasks", taskElement); 
       continue; // with the possible next task element 
      } 
<task:scheduled ref="beanA" method="methodA" fixed-delay="5000" initial-delay="1000"/> 

See Frühling documentation in Abschnitt 33.3.2 Trigger-Implementierungen

+0

Wirklich gut erklärt, bis zur Mark, Problem gelöst. Danke .. !! –

Verwandte Themen