繁体   English   中英

如何使用 CommandLineJobRunner 调用嵌入在 Spring Boot 应用程序中的 Spring Batch 作业

[英]How to invoke Spring Batch Jobs embedded in a Spring Boot Application using CommandLineJobRunner

我有一个 Spring Boot 应用程序,它有 2 个模块。 首先是一个 web 模块,它公开了一个 rest API,它允许用户将一些数据导入到应用程序中。 第二个模块是一组批处理作业,它们作用于这些配置并执行后台处理。

我能够在应用程序中创建 REST API 和批处理作业,作为起点,我使用 REST 端点使用 JobLauncher 启动我的批处理作业。

我的下一个任务是打包应用程序并部署 Web 应用程序以公开 REST 端点,并创建 shell 脚本以使用企业调度程序启动批处理作业。

我正在使用 Maven 和 spring-boot-maven-plugin 来构建可执行 jar。 但是,当我执行java -jar myApp.jar REST API 时,当我尝试通过执行java -cp myApp.jar org.springframework.batch.core.launch.support.CommandLineJobRunner com.example.myJobConfig job1 runDate=2020-02-29来运行批处理作业时java -cp myApp.jar org.springframework.batch.core.launch.support.CommandLineJobRunner com.example.myJobConfig job1 runDate=2020-02-29

我收到以下错误错误:无法找到或加载主类 org.springframework.batch.core.launch.support.CommandLineJobRunner

我正在寻求有关如何在单个应用程序中同时拥有 Web 应用程序和批处理作业并使用 shell 脚本启动批处理作业的帮助。

我正在使用 Maven 和 spring-boot-maven-plugin 来构建可执行的 jar

在这种情况下,您可以使用以下命令在命令行上运行您的作业:

java -jar myApp.jar --spring.batch.job.names=job1 runDate=2020-02-29

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM