向您展示如何使用CommandLineJobRunner
运行Spring批处理作业的快速指南。
1. Spring批处理作业示例
一个简单的工作。
resources/spring/batch/jobs/job-read-files.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans ...
<import resource="../config/context.xml"/>
<job id="readJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet>
<chunk reader="flatFileItemReader"
writer="flatFileItemWriter" commit-interval="1" />
</tasklet>
</step>
</job>
<!-- ... -->
</beans>
2.包装项目
使用Maven将您的项目打包到单个jar文件– target / your-project.jar中 ,然后将所有依赖项复制到target / dependency-jars /中 。
pom.xml
<!-- ... -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/dependency-jars/
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
$ mvn package
3. CommandLineJobRunner示例
用法:
CommandLineJobRunner jobPath <options> jobIdentifier (jobParameters)
要在spring批处理作业上运行,请键入以下命令:
$ java -cp "target/dependency-jars/*:target/your-project.jar" org.springframework.batch.core.launch.support.CommandLineJobRunner spring/batch/jobs/job-read-files.xml readJob
对于jobParameters
,追加到命令末尾:
$ java -cp "target/dependency-jars/*:target/your-project.jar" org.springframework.batch.core.launch.support.CommandLineJobRunner spring/batch/jobs/job-read-files.xml readJob file.name=testing.cvs
要按计划运行它,通常,您可以将上述命令复制到.sh
文件中,并使用任何计划程序命令运行它,例如* nix中的cron
。 请参考此示例– 在Linux下将作业添加到cron 。
PS当批处理作业在系统调度程序下运行时,请确保它可以找到您项目的类路径。
下载源代码
下载它– SpringBatch-Run-Example.zip (12 KB)
参考文献
翻译自: https://mkyong.com/spring-batch/run-spring-batch-job-with-commandlinejobrunner/