【问题标题】:spring-data-flow task examplespring-data-flow 任务示例
【发布时间】:2018-02-06 17:24:35
【问题描述】:

我正在使用带有 taskcloud 模块的 spring-cloud-dataflow,但是在容器中午餐一个简单的示例时遇到了一些麻烦。 tiny example 6.3 写代码然后我已经部署了 但是当我尝试执行它时,我会抛出一个

java.lang.IllegalArgumentException: Invalid TaskExecution, ID 1 not found
  at org.springframework.util.Assert.notNull(Assert.java:134)
  at org.springframework.cloud.task.listener.TaskLifecycleListener.doTaskStart(TaskLifecycleListener.java:200)

在我的评估中,我使用了Spring boot example 为了在 scd 中运行,我添加了 @EnableTask 并配置了 ad sqlserver 数据源,但它不起作用。

我坚持使用 Spring Cloud 数据流,因为我读到 Spring Batch Admin 已停产,但 2.0.0.BUILD-SNAPSHOT 有效 好吧,一个小例子的工作原理与使用 @task 注释的 Spring Cloud 数据流中发生的情况相反。

可能是我的误解,但你能否提供一个小例子,或者给我一些网址?

【问题讨论】:

标签: spring-cloud-dataflow spring-cloud-task


【解决方案1】:

这个错误:

无效的任务执行,未找到 ID 1

可以是关于SCDF的数据源,一般来说,SCDF在自己的数据库中找不到Task Execution表,而不是在应用程序数据库中

您可以通过添加数据库驱动程序或修复 url 连接字符串来修复它,指向 SCDF 的数据库

下面的这个问题可能会有所帮助

How to properly compile/package a Task for Spring Cloud Data Flow

【讨论】:

    【解决方案2】:

    引用https://docs.spring.io/spring-cloud-dataflow/docs/current-SNAPSHOT/reference/htmlsingle/#configuration-rdbms,必须将数据源参数传递给数据流服务器和数据流外壳(如果使用),以便云数据流将执行/任务/步骤相关数据保存在所需数据源中。

    来自 MySQL 数据源的链接的示例(可以为 SQL Server 配置类似的):

    java -jar spring-cloud-dataflow-server-local/target/spring-cloud-dataflow-server-local-1.0.0.BUILD-SNAPSHOT.jar \
        --spring.datasource.url=jdbc:mysql:<db-info> \
        --spring.datasource.username=<user> \
        --spring.datasource.password=<password> \
        --spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
    

    【讨论】:

    • 我通过获取 SCDF 源代码并添加了 oracle 依赖 jar 并运行与上述相同的命令来解决相同的问题。有效。在运行上述命令之前,您需要确保在 SCDF 中添加了 DB 驱动程序。 SCDF 带有与 DB 相关的 jar,但如果您使用的是 oracle 或第三方,则需要手动添加。 @fbalicchia
    猜你喜欢
    • 1970-01-01
    • 2018-01-24
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2020-10-15
    • 2020-11-03
    相关资源
    最近更新 更多