在春季云数据流中午餐任务后任务执行不工作
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 映像。
现在它适用于我的示例任务应用程序。
【讨论】:
以上是关于在春季云数据流中午餐任务后任务执行不工作的主要内容,如果未能解决你的问题,请参考以下文章
如何在春季批处理中使用 MultiResourceItemReader 在读取单个 csv 后指定任务执行器以生成线程