2017-07-17 2 views
1

Existe-t-il un moyen de spécifier Scheduler pour un travail Spring Batch spécifique configuré via XML sans utilser la classe RunScheduler comme ceci: https://www.mkyong.com/spring-batch/spring-batch-and-spring-taskscheduler-example/?Spring Scheduler Job Scheduler

Pour l'instant ma config ressemble à ceci:

<batch:job id="testJob" job-repository="jobRepository" parent="jobParent"> 
     <batch:step id="testStep" allow-start-if-complete="true"> 
      <batch:tasklet> 
       <batch:chunk 
         reader="testReader" 
         processor="testProcessor" 
         writer="jmsWriter"> 
       </batch:chunk> 
      </batch:tasklet> 
     </batch:step> 
    </batch:job> 


<task:scheduled-tasks> 
     <task:scheduled ref="testJobLauncher" method="runJob" cron="0 */5 * * * *"/> 
    </task:scheduled-tasks> 

    <bean id="testJobLauncher" 
      class="com.test.RunScheduler" 
      p:job-ref="testJob" 
      p:jobLauncher-ref="jobLauncher" 
    "/> 



@Component 
public class RunScheduler { 

    private JobLauncher jobLauncher; 
    private Job job; 

    public void runJob() { 
     try { 
      String dateParam = new Date().toString(); 
       JobParameters param = new JobParametersBuilder().addString("date", dateParam).toJobParameters(); 
       JobExecution execution = jobLauncher.run(job, param);    
     } catch (Exception e) { 
      LOGGER.error("Can't start job", e); 
      throw new RuntimeException(e); 
     } 
    } 

    public Job getJob() { 
     return job; 
    } 

    public void setJob(Job job) { 
     this.job = job; 
    } 

    public JobLauncher getJobLauncher() { 
     return jobLauncher; 
    } 

    public void setJobLauncher(JobLauncher jobLauncher) { 
     this.jobLauncher = jobLauncher; 
    } 

} 

est-il pas moyen d'utiliser la classe RunScheduler et juste gérer à l'aide de configuration XML?

Répondre

0

Vous pouvez utiliser les capacités de @EnableScheduling et de cronSequenceGenerator pour la planification et les paramètres cron sans dépendre des classes util.