2016-05-24 8 views
1
@Component 
    public class JobScheduler { 
    private static final Log logger = LogFactory.getLog(JobScheduler.class); 

    @Autowired 
    private JobLauncher jobLauncher; 

    @Autowired 
    private Job job; 

    @Scheduled(cron = "0 0/1 * * * ?") 
    public void run() { 
     try { 
      String dateParam = new Date().toString(); 
      JobParameters param = new JobParametersBuilder().addString("date", dateParam).toJobParameters(); 
      jobLauncher.run(job, param); 
     } catch (Exception e) { 
      logger.error(e.getStackTrace()); 
     } 
    } 

    } 

Der Batch-Job xml ist:Frühling Batch-Server-Betreiber nicht eine geplante Aufgabe auslösenden

<?xml version="1.0" encoding="UTF-8"?> 
    <beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:task="http://www.springframework.org/schema/task" 
xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation=" 
    http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch.xsd 
    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 


<context:annotation-config /> 
<context:component-scan base-package="org.springframework.batch.admin.sample" /> 

<job id="infinite1" xmlns="http://www.springframework.org/schema/batch"> 
    <step id="step1"> 
     <tasklet start-limit="100"> 
      <chunk commit-interval="1" reader="itemReader" writer="itemWriter" /> 
     </tasklet> 
    </step> 
</job> 

<bean id="itemWriter" class="org.springframework.batch.admin.sample.ExampleItemWriter"/> 
<bean id="itemReader" class="org.springframework.batch.admin.sample.ExampleItemReader" scope="step"/> 

<task:scheduled-tasks> 
    <task:scheduled ref="jobScheduler" method="run" cron="0 0/1 * * * ?"/> 
</task:scheduled-tasks> 

<bean id="jobScheduler" class="org.springframework.batch.admin.sample.JobScheduler" /> 

ich den VMWare vFabric tc Server verwenden, die sollte mit STS 3.6 Der Cron-Ausdruck kommt gebündelt habe den infinite1 Job für jede Minute ausgelöst. Aber das tut es nicht. Alle Hinweise würden geschätzt werden.

+0

Haben Sie das jemals gelöst? Wenn ja, was war Ihre Lösung? – Rick

+1

@Rick - Nein, wir konnten das nicht zur Arbeit bringen, also haben wir das in den Rückstand gelegt und sind zu anderen Dingen übergegangen. – ashwin

Antwort

0

Versuchen Sie @EnableScheduling in Ihre Klasse zu setzen

+0

Die Verwendung dieser Annotation verursacht diesen Fehler: "@Scheduled-Methode 'removeInactiveExecutions' wurde in der Bean-Zielklasse 'SimpleJobService' gefunden, aber in keiner Schnittstelle für einen dynamischen Proxy gefunden." Auch bei Verwendung der Annotation @EnableAspectJAutoProxy (proxyTargetClass = true) wird immer noch der gleiche Fehler angezeigt. Verwenden von SBA 2.0.0.BUILD-SNAPSHOT und Spring Batch Core 3.0.7.RELEASE – Rick