1

我有一个基于 web 的 spring 批处理应用程序。我的批处理作业将在 API 调用时启动。这是我作为 Web 服务公开的方法。

    @RequestMapping(value = "/v1/initiateEntityCreation", method = RequestMethod.GET)
    public String initiateEntityCreation()
            throws JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException,
            JobParametersInvalidException, NoSuchJobException, JobInstanceAlreadyExistsException {
        JobParametersBuilder jobParametersBuilder = new JobParametersBuilder();
        jobParametersBuilder.addDate("Date", new Date());
Long executionContext = jobOperator.start("InitiateEntityCreation", String.format("Date=%s", new Date()));
        return executionContext.toString();
    }

我的批处理作业运行良好,我有一个 Mysql 实例作为我的作业存储库。我已将 Spring Cloud 数据流集成到我的批处理应用程序中。我有我的 @EnableTask 注释和所有必要的依赖项。我已将 Spring Cloud 数据本地服务器连接到我的 Spring Batch jon Repository 实例。

这是我的 SCDF 命令行参数。

java -jar spring-cloud-dataflow-server-local-1.2.3.RELEASE.jar --
spring.datasource.url=jdbc:mysql://localhost:3306/springbatchdb--
spring.datasource.username=root --spring.datasource.password=password --
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver  

我的本地服务器正在运行并捕获所有作业执行实例。我已将我的 spring 批处理应用程序注册到 SCDF 并使用定义为 SCDF 定义了一个任务。

当我尝试从 SCDF 启动作业时,我得到“任务成功执行”。但我的工作没有得到执行。

如果我检查任务执行情况,我看到的是

StartTime N/A,EndTime N/A,如果我深入到任务执行,则没有运行批处理作业。请让我知道我们如何使用 Spring Cloud 数据流启动基于 Web 的 Spring Batch 作业。

4

0 回答 0