问题标签 [spring-cloud-task]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
493 浏览

spring - RepositoryItemReader 和 RepositoryItemWriter 的不同数据源

我迫切需要知道是否可以使用 RepositoryItemReader 和 RepositoryItemWriter 来完成例如将数据从一个数据库传输到另一个数据库?

可能可以使用 JdbcPagingItemReader 和 JdbcBatchItemWriter 来做到这一点,因为两者都有设置 dataSource 的方法(可能)。

请帮忙。

0 投票
1 回答
5989 浏览

spring - 使用 Spring Cloud 数据流代替 Spring Batch 的优势

我们需要编写一个应用程序来每天读取一个平面文件并写入数据库表。我们计划使用 Spring Batch 来完成这项工作。

我们正在寻找的限制和补充是

1.应用程序本身将在单个 VM 中运行。它永远不会在任何时候部署在一个以上的虚拟机中。

2.我们将来可能会有其他文件遵循相同的模式。

在这种情况下,与 Spring Batch 相比,使用 Spring Data Flow 是否提供任何功能或优势?

0 投票
0 回答
228 浏览

spring-cloud-stream - 控制 Spring Cloud 任务启动器

我正在以这种状态从云流启动任务。是否可以控制可以同时运行多少个任务以确保我们的系统不被滥用。

0 投票
1 回答
314 浏览

spring-cloud-task - Spring Cloud 数据流任务执行监控

我们一直在研究 Spring Cloud 任务。它看起来很有希望,但我们似乎错过了监控应该如何工作,尤其是对于从流中执行的任务。对于从仪表板手动执行的任务,有一个执行选项卡,但似乎不是一个页面,您可以在其中找到从流中执行的任务的概述。

监控此类任务的执行、退出代码、进度和其他内容的方法是什么?

0 投票
2 回答
179 浏览

spring-cloud-stream - spring cloud dataflow中如何处理全局资源?

我正在学习spring cloud dataflow的概念,想知道存储全局资源的常用方法是什么。

例如,当我有一个带有pmml 处理器的流时,我想通过 spring-cloud-task 定期重新训练底层 pmml 模型。

我将在哪里存储模型,以便处理器可以将其用作(只读)资源并由任务每晚更新?spring cloud dataflow中是否有全局存储的概念?我应该只使用 spring-cloud 之外的传统数据库还是有更好的方法?

0 投票
2 回答
566 浏览

spring-cloud-dataflow - 从 Spring Cloud Data Flow 1.1.2 UI 或 API 检索作业执行时出现 NullPointerException

当我尝试在 UI 的“作业”选项卡(“获取数据时出错。数据流服务器是否正在运行?”)或通过 REST API(500 NullPointerException)获取作业执行列表时,我发现了一个问题。

日志中的错误是

这似乎是由代码引起的:

对此进行调查,似乎我的一些工作没有与任务 ID 相关联 - 即 task_task_batch 表中没有条目,如果我尝试检索其中一个工作或所有工作的列表,我会得到 NullPointerException。

直接通过在 task_task_batch 表中有关联的 id 检索作业是可以的。

调查为什么我的一些工作任务会发生这种情况,这似乎是因为其中一些使用 XML 而不是 Java Config 来配置工作(我们有一些预先存在的复杂工作,我们正在从 XD 转移到 Spring Cloud Data Flow 和保留 XML 是最初执行此操作的最快方法)。

否则,这些作业运行良好,并将作业/步骤执行记录到数据库。

使用 XML 时,似乎taskBatchExecutionListener没有自动添加到作业中,因此任务/批处理关联没有被注册。

代码在TaskBatchExecutionListenerBeanPostProcessor其中,这可能是因为在使用 XML 配置时,作业 bean 是 typeJobParserJobFactoryBean而不是AbstractJob.

如果我手动添加监听器,即

在工作 xml 中,问题已解决。

我有几个问题:

1) 这是 Spring Cloud Task 中的一个错误 - 即它只是没有正确处理 XML 配置,如果是这样,我可以为此提出一个问题。

2) Spring Cloud Dataflow 是否应该更好地处理这个问题?一个表现不佳的任务似乎可以有效地破坏数据并停止检索包含“好”工作的列表。

0 投票
1 回答
893 浏览

spring-cloud-dataflow - 在 PCF 上的 Spring Cloud 数据流容器中运行多个 Spring Cloud 任务作业

我正在尝试在 PCF 上的 Spring Cloud 数据流容器中执行多个 Spring Cloud 任务作业。这些作业从 http 源读取原始文件,然后对其进行解析并将其写入 mysql db。这些作业是用纯 java 编写的,而不是用 spring batch 编写的。我已将 mysql db 与 PCF 上的 scdf 容器绑定。我相信spring cloud task会使用mysql db来存储这些状态的执行状态。我希望实际的输出记录也进入mysql。

我的问题是这些作业的输出记录将如何存储在 mysql db 中?它会为每个解析器作业使用不同的模式吗?如果没有,那么我该如何配置它呢?

如果您遇到这种情况,请分享您的想法。

谢谢!

尼兰詹

0 投票
1 回答
996 浏览

spring-cloud-task - Spring Cloud 任务集成测试

我正在寻找有关为 Spring Cloud Task 编写集成(即测试整个 Spring Boot 应用程序)的最佳方式的一些指导。根据现有的文档和示例,我看到了两种方法:

1) 使用标准 @SpringBootTest 和 @TestPropertySource(properties = {"spring.cloud.task.closecontext_enable=false"} 描述here

http://docs.spring.io/spring-cloud-task/docs/1.2.0.M2/reference/htmlsingle/#_writing_your_test

这似乎实际上只允许每个测试类进行一次测试,因为在初始化弹簧上下文时运行任务,即每个测试类一次。但是,@Autowiring 将上下文中的 bean 放入测试类应该可以检查任务的结果,或者检查任务存储库的状态。

2) 使用 SpringApplication.run(MyTaskApplication.class, myArguments); 在每个测试方法中,如这里的示例中所示

https://github.com/spring-cloud/spring-cloud-task/blob/master/spring-cloud-task-samples/batch-job/src/test/java/io/spring/BatchJobApplicationTests.java

这允许我在测试类中编写多个测试,每个测试都可能具有不同的弹簧属性或批处理作业参数。

我在使用这两种方法时遇到的主要问题是,我看不到如何在 JdbcTemplate (例如,将作业的测试输入数据插入嵌入式数据库)或 RestTemplate(设置在创建这些 bean 之后但在任务运行之前使用 MockRestServiceServer 的期望 - 这可能吗?如果不是,那么很难看到如何为任务编写有意义的集成测试。

0 投票
2 回答
7293 浏览

cloud-foundry - 如何使用 java buildpack 在 Cloud Foundry 上运行 Spring 应用程序作为一次性任务

我想使用java buildpack在cloudfoundry上运行一个spring应用程序作为一次性任务。

请注意,我的应用程序不是 Web 应用程序,而是同样使用 Spring Cloud 任务的 Spring Batch 应用程序。

这是我的清单:

每当我推送应用程序时,它都会被检测为工作应用程序:

这就是我想要的。

但随后它尝试将批处理作为 Web 应用程序启动(仍在部署应用程序时)......请参阅:

这不是我想要的...

所以我的问题是:

  • 如何配置我的清单以便在不自动启动的情况下正确推送批处理应用程序 - 我只想将二进制文件推送到 cf 以便稍后运行任务...
  • 如何在 cloudfoundry 上将我的 spring 批处理作为 cf 任务启动?
0 投票
1 回答
304 浏览

spring-cloud-stream - 关于使用 Spring Cloud Stream 作为源执行的任务的说明

阅读本文档时,似乎我们可以编写一个微服务,@EnableTask它有一个源,其发出的消息被记录为一个执行步骤spring-cloud-task

我想对此声明进行一些澄清,以便在没有以下情况下实现这一目标spring-cloud-dataflow

  • 这是否意味着如果我们有一个Source带有 an 的 bean InboundChannelAdapter,我们不需要声明 a CommandLineRunner
  • 根据定义,一项任务预计会发出一次数据,如何通过Source定期轮询来重现这种行为?
  • 我试图在spring-boot应用程序中混合一些配置@EnableTask和 aAggregateApplicationBuilder以直接将我连接Source到 aSink而无需利用Kafkaor RabbitMQ,但它似乎spring-cloud-task需要一个活页夹。有没有办法跳过它?

谢谢