【问题标题】:Spring Batch integration with spring cloud data flow on local server to add spring admin capabilitiesSpring Batch 与本地服务器上的 Spring Cloud 数据流集成以添加 Spring 管理功能
【发布时间】:2018-02-22 07:52:18
【问题描述】:

我有一个基本的 Spring Batch 应用程序,它在 Spring Boot 中在嵌入式 Apache Tomcat 上运行。我需要向它添加弹簧管理功能。根据最新的 spring 文档,我需要使用 spring 云数据流来执行此操作(https://docs.spring.io/spring-batch-admin/)。所以现在我需要使用 spring 云数据流并将我的 spring 批处理应用程序集成到本地服务器上。我只希望它在我的本地机器上运行,而不需要将它部署到任何云环境,如 cloud Foundry 或 openshift。可能吗?我确信它是可能的。我想获得一些关于这种类型的集成和集成spring批处理应用程序的入门指南的参考/示例。我需要在 Spring Cloud 数据流中创建任务来运行我的 Spring Batch 应用程序吗?如果有任何示例示例/伪代码来指导我,那将很容易。

【问题讨论】:

  • @Sabby Anandan 你能帮我解决这个问题吗
  • 我尝试按照文档进行操作。如果我做错了什么,请纠正我。所以我在 springBatchApplication 中将 @enabletask 添加到了我的 Mainclass 中。所以这应该使它成为 spring 云任务。然后运行 ​​spring 云数据流 jar 给了我一个 UI,我将 jar 注册为任务并尝试启动它。所以启动它并没有多大作用。该应用程序未启动,它在任务详细信息中具有以下值,exe 选项卡中的任务状态为未知。属性值 参数 Extenal Execution Id N/A Strt Time N/A Ed Time N/A Batch Job Job Exection Ids Strt Time N/A End Time N/A Exit Coe 0 Exit Message N/A
  • 这不是很有帮助。请注意服务器控制台/日志。将有一个绝对路径 - 一个链接 - 来跟踪“启动的任务”,这可能会说明它失败的原因。服务器日志还应该说明启动失败的原因。
  • 也许作为第一步,您可以在 SCDF 中运行一个示例 SCT 应用程序来感受一下。成功后,您可以继续进行应用迁移。
  • 我在日志上有这个错误 无法启动 bean 'taskLifecycleListener';嵌套异常是 org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback;错误的 SQL 语法 [INSERT into TASK_EXECUTION(TASK_EXECUTION_ID, START_TIME, TASK_NAME, LAST_UPDATED, EXTERNAL_EXECUTION_ID, PARENT_EXECUTION_ID) 值 (?, ?, ?, ?, ?, ?)];嵌套异常是 java.sql.SQLSyntaxErrorException: ORA-00904: "PARENT_EXECUTION_ID": org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) 的标识符无效~[spring-context-4.3.11.RELEASE。 j

标签: spring-batch-admin spring-cloud-dataflow


【解决方案1】:

migration-guide 中所述,您可以使用 Spring Cloud Data Flow (SCDF) 的“本地”变体来替代 Spring Batch Admin (SBA)。

SCDF 是一个简单的 Spring Boot 应用程序,您可以将其作为一个独立的 Java 进程运行,类似于您现在运行该应用程序的方式。

此外,如 migration-steps 中所述,您必须将现有的批处理工作负载移植到 Spring Cloud Task 模型,这应该是一个简单的过程 - 使用此 Spring Batch sample。在大多数情况下,您会将业务逻辑复制/粘贴到 Spring Cloud Task 应用程序中,所有基础架构(包括模式、存储库和其他批处理好东西)将继续工作。 task-app-starers里面有几个复杂的实现,也可以作为参考。

最后,您可以使用 SCDF 的dashboard 进行监控和管理。

【讨论】:

    猜你喜欢
    • 2016-06-16
    • 1970-01-01
    • 2019-10-17
    • 2018-10-24
    • 2018-07-02
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 2012-10-20
    相关资源
    最近更新 更多