2016-05-24 3 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()); 
     } 
    } 

    } 

Пакетное задание XML является:Spring партия админ не вызывает запланированное задание

<?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" /> 

Я использую дц сервер VMWare VFabric который поставляется в комплекте с STS 3.6 Выражение хрон должно вызвали бесконечную работу за каждую минуту. Но это не так. Любые указатели будут оценены.

+0

Вы когда-нибудь поняли это? Если да, то каково было ваше решение? – Rick

+1

@ Rick - Нет, мы не могли заставить это работать, поэтому помещаем это в отставание и переходим к другим элементам. – ashwin

ответ

0

Постарайтесь положить @EnableScheduling в ваш класс

+0

Использование этой аннотации вызывает эту ошибку: «@Scheduled method» removeInactiveExecutions »найден в целевом классе bean-класса« SimpleJobService », но не найден в каких-либо интерфейсах для динамического прокси». Даже при использовании аннотации @EnableAspectJAutoProxy (proxyTargetClass = true) по-прежнему возникает такая же ошибка. Использование SBA 2.0.0.BUILD-SNAPSHOT и Spring Batch Core 3.0.7.RELEASE – Rick

Смежные вопросы