当前位置: 首页 > 知识库问答 >
问题:

如何启动Spring批处理作业使用命令LineJobRunner具有Java配置

陈修诚
2023-03-14

我在基于Java的配置文件中定义了批处理作业。我已经看到,CommandLineJobRunner可以用来启动作业,但是作业定义应该在中定义。xml。我想使用CommandLineJobRunner来运行在基于java的配置中定义的作业。

根据这里的文件:https://docs.spring.io/spring-batch/trunk/reference/html/configureJob.html#commandLineJobRunner,没有具体细节。

我们能做到吗?其他的选择是什么?

共有1个答案

尹赞
2023-03-14

CommandLineJobRunner的第一个参数可以是:

  • 包含作业定义的xml文件
  • 或包含作业定义的配置类的完全限定名称

从Spring Batch v4开始,每个留档页面的顶部都有一个切换,允许您在Java或Xml配置中显示示例。例如,当切换设置为“Java”时,这里的留档部分:https://docs.spring.io/spring-batch/4.0.x/reference/html/job.html#runningJobsFromCommandLine显示了如何将命令行JobRunner与Java配置类一起使用:

$>java -cp your/class/path org.springframework.batch.core.launch.support.CommandLineJobRunner io.spring.EndOfDayJobConfiguration endOfDay schedule.date(date)=2007/05/05

io.spring.EndOfDayJobConfiguration是包含endOfDay作业定义的完全限定类名。

 类似资料:
  • 我遵循了spring批处理文档,无法异步运行我的作业。 因此,我从一个web容器运行该作业,该作业将通过RESTendpoint触发。 我想让JobInstance ID在完成整个作业之前传递它作为响应。因此,他们可以稍后使用JobInstance ID检查作业的状态,而不是等待。但我没能让它工作。下面是我尝试过的示例代码。请让我知道我错过了什么或错了什么。 BatchConfig创建异步JobL

  • 我有一个正在工作的Spring Boot/批处理项目,包含2个作业。 我现在尝试添加集成,仅使用java配置/java DSL从远程SFTP轮询文件,然后启动作业。 文件轮询工作正常,但我不知道如何在我的流中启动作业,尽管阅读了以下链接: 一些代码段: 对于.handle(“FileMessageToJobRequest”,“ToRequest”),我使用的是http://docs.spring.

  • 我有一个spring批处理作业,从CSV文件读取并写入数据库。我想让它重新启动。例如,如果在读取文件或写入db时出现异常,导致作业失败,则应从失败的同一点/块重新开始,而不是从头开始读取整个文件。 我正在从一个endpoint触发作业启动器,并在我的控制器中配置了它。 目前,我正在通过控制器将参数(这是一个唯一的标识符/数字)传递给作业参数,以运行新的作业实例。如果作业失败,我将使用与GET请求中

  • 我能够通过命令行使用成功地启动springboot-batch作业。

  • 我需要从远程SFTP服务器下载一个文件,并使用spring batch处理它们。我已经实现了使用Spring集成下载文件的代码。但我无法从Spring集成组件启动Spring批处理作业。我有以下代码: 但这不起作用(上一个方法中的错误),因为找不到文件类型的bean。我不能把这两部分连在一起。如何连接集成和批处理?

  • 我不知道如何使用调用Spring批处理中定义的作业,文档细节对我来说是不够的。 我遵循了Spring Batch官方指南,使用Java注释(例如)在Spring Batch中编写作业,因为我希望避免使用XML配置文件来描述作业、步骤等。 到目前为止我已经: 配置类(见下文),我使用AnnotaIon将定义、、、和(带有的所有内容放入其中。 具有方法的类,该方法具有并具有注释,以导入处理作业中的数据