我不知道如何使用commandlinejobrunner
调用Spring批处理中定义的作业,文档细节对我来说是不够的。
我遵循了Spring Batch官方指南,使用Java注释(例如@enableBatchProcessing
)在Spring Batch中编写作业,因为我希望避免使用XML配置文件来描述作业、步骤等。
到目前为止我已经:
com.package.bla.bla.ClassContainingTheBatchConfiguration
见下文),我使用@bean
AnnotaIon将定义ItemReader
、ItemProcessor
、ItemWriter
、作业
和步骤
(带有返回jobs.get(“nameoftheJob”)
的所有内容放入其中。main
方法的类,该方法具有springapplication.run(...)
并具有@importresource(“classpath:meta-inf/spring/applicationcontext.xml”)
注释,以导入处理作业中的数据时需要的一些bean。在Maven方面,我目前正在使用一些插件:
maven-jar-plugin
指定
true
和包含标记
maven-assembly-plugin
因为我想要一个唯一的可执行的jar
包含依赖项中的所有东西,所以我使用
package
来构建package
阶段中的jar,我还使用
single
来使用assembly
maven-compiler-plugin
指定我正在使用Java 1.7我想我已经配置了所有需要配置的东西,但是在使用Mavenbuild success
之后,我无法从命令行运行作业:
java -cp ./target/JAR_FILE_NAME.jar org.springframework.batch.core.launch.support.CommandLineJobRunner com.package.bla.bla.ClassContainingTheBatchConfiguration nameOfTheJob
由于关于com.package.bla.bla.ClassContainingTheBatchConfiguration
的java.io.FileNotFoundException
引发IOException
。我应该如何在命令行中指定参数以使作业得到执行?
如果您已经在Spring Boot中使用SpringApplication
,那么为什么不完成该作业并使用@enableAutoConfiguration
以及Maven插件(例如,请参见本指南)呢?这样,您就可以很快地完成一些工作,并且可以在以后添加您自己的功能。
我能够通过命令行使用成功地启动springboot-batch作业。
我有一个作业流,我希望以以下方式运行它: 作业流将从Job1开始。在Job1成功完成后,Job1将同时启动Job2和Job4。 Job2和Job4将并行运行。 在Job2成功完成后,Job2将启动Job3。 在Job4成功完成后,Job4将启动Job5。 下面是job1.xml和job1的作业启动器类的代码片段: job1.xml uijobLauncher.java “job2,Job3”对和“
我正在使用spring批处理读取CSV文件并使用controller触发器将其写入DB。在启动应用程序时,在我从浏览器url中点击之前,我会在启动时看到来自阅读器的打印语句。虽然它不为我的处理器或写入器打印它,它们是在单独的类中,我已经自动连线。是因为读者是豆子吗?
我在我的项目中集成了Spring Batch,我在运行JobLauncher时遇到了问题。 在我的类JobLauncher我有这个: 对于配置,我使用XML配置: 配置批处理。xml: 在作业配置中。我有: 当我在类JobLauncher中调试时,它会在jobLuancher中停止。运行,我也不例外,似乎SpringBatch无法识别reader和whriter!!有什么建议吗?
问题内容: 运行main方法时,将执行作业。这样我无法弄清楚如何控制作业的执行。例如,您如何安排作业,访问作业执行或设置作业参数的方式。 我试图注册自己的JobLauncher 但是当我尝试在主要方法中使用它时: 当加载上下文时,该作业再次执行,而当我尝试手动运行它时,我得到了。有没有办法防止自动作业执行? 问题答案: 通过设置可以防止作业执行 在application.properties中。或