在春季云数据流中午餐任务后任务执行不工作

Posted

技术标签:

【中文标题】在春季云数据流中午餐任务后任务执行不工作【英文标题】:Task execution is not working after lunching the task in spring cloud data flow 【发布时间】:2021-05-18 10:24:40 【问题描述】:

我创建了一个带有 @EnablesTask 注释的 Spring Boot 应用程序,并尝试在日志中打印参数。

package com.custom.samplejob;

import org.springframework.boot.CommandLineRunner;
import org.springframework.cloud.task.configuration.EnableTask;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableTask
public class TaskConfiguration 

    @Bean
    public CommandLineRunner commandLineRunner() 
        return args -> 
            System.out.println(args);
        ;
    

在我运行 mvn clean install 以将 jar 放入本地 maven repo 之后。

com.custom:samplejob:0.0.1-SNAPSHOT

使用自定义 docker-compose 在 windows 上使用以下参数本地运行 spring cloud 数据流

set HOST_MOUNT_PATH=C:\Users\user\.m2 (Local maven repository mounting)

set DOCKER_MOUNT_PATH=/root/.m2/

set DATAFLOW_VERSION=2.7.1

set SKIPPER_VERSION=2.6.1

docker-compose up

使用以下命令注册应用程序

app register --type task --name custom-task-trail-1 --uri maven://com.custom:samplejob:0.0.1-SNAPSHOT

使用 UI(以下 URL)创建任务并午餐任务。任务已成功启动。

http://localhost:9393/dashboard/#/tasks-jobs/tasks

这些是我可以在 docker-compose up 终端中看到的日志,

dataflow-server    | 2021-02-15 13:20:41.673  INFO 1 --- [nio-9393-exec-9] o.s.c.d.spi.local.LocalTaskLauncher      : Preparing to run an application from com.custom:samplejob:jar:0.0.1-SNAPSHOT. This may take some time if the artifact must be downloaded from a remote host.
dataflow-server    | 2021-02-15 13:20:41.693  INFO 1 --- [nio-9393-exec-9] o.s.c.d.spi.local.LocalTaskLauncher      : Command to be executed: /usr/lib/jvm/jre-11.0.8/bin/java -jar /root/.m2/repository/com/custom/samplejob/0.0.1-SNAPSHOT/samplejob-0.0.1-SNAPSHOT.jar --name=dsdsds --spring.cloud.task.executionid=38
dataflow-server    | 2021-02-15 13:20:41.702  INFO 1 --- [nio-9393-exec-9] o.s.c.d.spi.local.LocalTaskLauncher      : launching task custom-task-trail-1-48794885-9a0a-4c46-a2a1-299bf91763ad
dataflow-server    |    Logs will be in /tmp/4921907601400/custom-task-trail-1-48794885-9a0a-4c46-a2a1-299bf91763ad

但在任务执行列表中,它不显示该任务执行的状态和开始日期和结束日期,

有人可以帮我解决这个问题,还是我在本地安装或任务 spring boot 实施中遗漏了什么?

【问题讨论】:

可以分享/tmp/4921907601400/custom-task-trail-1-48794885-9a0a-4c46-a2a1-299bf91763ad的日志吗?如果没有,您是否看到任何错误? 嗨@MahmoudBenHassine - 我尝试从下面的推荐中获取日志,但它说没有这样的文件或目录。 docker exec -it skipper more /tmp/4921907601400/custom-task-trail-1-48794885-9a0a-4c46-a2a1-299bf91763ad 输出 more: stat of /tmp/4921907601400/custom-task-trail-1-48794885-9a0a-4c46-a2a1-299bf91763ad failed: No such file or directory 你能指导我在哪里查看这些日志吗? 您应该在运行数据流服务器的同一主机中查找日志。 当前数据流服务器正在使用 docker-compose 在我的 Windows 上运行。我在数据流服务器容器日志中没有看到任何错误 这些是上述问题的日志,org.springframework.context.ApplicationContextException: Failed to start bean 'taskLifecycleListener';嵌套异常是 java.lang.IllegalArgumentException: Invalid TaskExecution, ID 2 not found @MahmoudBenHassine 【参考方案1】:

我已经在 docker 桌面上启用了 kubernetes,并在上面安装了 spring 数据流服务器。 我尝试使用 docker uri 注册应用程序并使用 jib-maven-plugin 生成 docker 映像。

现在它适用于我的示例任务应用程序。

【讨论】:

以上是关于在春季云数据流中午餐任务后任务执行不工作的主要内容,如果未能解决你的问题,请参考以下文章

春季启动批处理到具有多个作业的春季云任务

大数据阿里云工具之DataWorks(二)

云计算设计模式(十三)——领导人选举模式

如何在春季批处理中使用 MultiResourceItemReader 在读取单个 csv 后指定任务执行器以生成线程

阿里云 Serverless 异步任务处理系统在数据分析领域的应用

优云软件应邀出席 ITSS 数据中心运营管理工作组 2017 年春季研讨会