Spring批处理使用Java No XML 3.0.8.RELEASE

时间:2018-01-04 17:23:05

标签: spring-batch

我想通过"时间戳"传递到JobLauncher的JobParameters,这样我就可以一天多次运行一个作业。

使用XML我能够做到这一点:

JobParameters jobParameters = new JobParametersBuilder().addLong("time", System.currentTimeMillis()).toJobParameters(); JobExecution execution = jobLauncher.run(job, jobParameters);

现在我在Spring Boot框架中只尝试Java,我不知所措。

使用main的启动类: @SpringBootApplication public class SpringBatchAnnotatedApplication { public static void main(String[] args) { SpringApplication.run(SpringBatchAnnotatedApplication.class, args);

例如来自开始Job的课程的代码:

@Bean public Job testJob(JobCompletionNotificationListener listener) { return jobBuilderFactory.get("testJob") .preventRestart() .listener(listener) .flow(step1()) .end() .build(); }

么?我在这里使用https://docs.spring.io/spring-batch/4.0.x/reference/html/job.html#configureJob跟踪文档[Java]也许有更好的参考?

2 个答案:

答案 0 :(得分:0)

下面应该适合你。我使用相同的配置,它对我来说很好。

JobParameters jobParameters = new JobParametersBuilder()
                                   .addDate("time", new Date())
                                   .toJobParameters();

答案 1 :(得分:0)

对于这个用例,Spring Batch有RunIdIncrementer的概念。它没有传递时间戳,而是递增作业参数。我建议使用这种方法而不是操作作业参数。您可以在此处的文档中详细了解RunIdIncrementerhttps://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/core/launch/support/RunIdIncrementer.html