关于使用 spring 云流作为源执行的任务的说明
Clarification about task executed as a source with spring cloud stream
阅读 this documentation 时,我们似乎可以使用 @EnableTask
编写一个微服务,它有一个源,其发出的消息被 spring-cloud-task
记录为一个执行步骤。
为了在没有 spring-cloud-dataflow
:
的情况下实现这一点,我想对这个声明进行一些澄清
- 这是否意味着如果我们有一个带有
InboundChannelAdapter
的 Source
bean,我们就不需要声明一个 CommandLineRunner
?
- 根据定义,一个任务预计会发出一次数据,如何使用
Source
定期轮询来重现此行为?
- 我试图在
spring-boot
应用程序中混合使用 @EnableTask
和 AggregateApplicationBuilder
的一些配置,以直接将我的 Source
连接到 Sink
而无需需要利用 Kafka
或 RabbitMQ
,但似乎 spring-cloud-task
需要活页夹。有没有办法跳过它?
谢谢
今天可用的是侦听任务的生命周期事件并将它们发布到下游 analysis/processing 的命名(可覆盖)通道目的地的能力。这只是通过在类路径中具有特定的 Spring Cloud Stream 的活页夹实现来简单地自动化。
Does it mean that if we have a Source bean with an InboundChannelAdapter, we don't need to declare a CommandLineRunner?
您似乎试图在您的启动应用程序中混合使用 Spring Cloud Stream (SCSt) 和 Spring Cloud Task (SCT) 注释。这不是它的用途。如果您还没有,请参阅 this sample 以获取想法。
By definition a task is expected to emit data one time, how to reproduce this behavior with a Source polled on a regular interval?
一项任务 运行 用于 "finite period of time",这通过您的业务逻辑嵌入到应用程序 运行 中的时间来描述。任务还需要某种形式的触发器才能启动。您可以使用调度程序进行定期启动或通过流启动它。这是 write-up 关于如何通过 Spring 云数据流 (SCDF) 中的流启动它的方法。
如果你要在 SCDF 之外进行,你 仍然 运行 自己 triggertask
并设置正确的环境- var's,因此 Stream + Task 应用程序通过公共通道目标连接。
... but it seems spring-cloud-task requires a binder. Is there a way to skip it?
SCSt 和 SCT 之间的连接是通过 spring-cloud-task-stream
和 spring-cloud-stream-binder-<type-of-binder>
依赖项完成的,没有其他方法。
阅读 this documentation 时,我们似乎可以使用 @EnableTask
编写一个微服务,它有一个源,其发出的消息被 spring-cloud-task
记录为一个执行步骤。
为了在没有 spring-cloud-dataflow
:
- 这是否意味着如果我们有一个带有
InboundChannelAdapter
的Source
bean,我们就不需要声明一个CommandLineRunner
? - 根据定义,一个任务预计会发出一次数据,如何使用
Source
定期轮询来重现此行为? - 我试图在
spring-boot
应用程序中混合使用@EnableTask
和AggregateApplicationBuilder
的一些配置,以直接将我的Source
连接到Sink
而无需需要利用Kafka
或RabbitMQ
,但似乎spring-cloud-task
需要活页夹。有没有办法跳过它?
谢谢
今天可用的是侦听任务的生命周期事件并将它们发布到下游 analysis/processing 的命名(可覆盖)通道目的地的能力。这只是通过在类路径中具有特定的 Spring Cloud Stream 的活页夹实现来简单地自动化。
Does it mean that if we have a Source bean with an InboundChannelAdapter, we don't need to declare a CommandLineRunner?
您似乎试图在您的启动应用程序中混合使用 Spring Cloud Stream (SCSt) 和 Spring Cloud Task (SCT) 注释。这不是它的用途。如果您还没有,请参阅 this sample 以获取想法。
By definition a task is expected to emit data one time, how to reproduce this behavior with a Source polled on a regular interval?
一项任务 运行 用于 "finite period of time",这通过您的业务逻辑嵌入到应用程序 运行 中的时间来描述。任务还需要某种形式的触发器才能启动。您可以使用调度程序进行定期启动或通过流启动它。这是 write-up 关于如何通过 Spring 云数据流 (SCDF) 中的流启动它的方法。
如果你要在 SCDF 之外进行,你 仍然 运行 自己 triggertask
并设置正确的环境- var's,因此 Stream + Task 应用程序通过公共通道目标连接。
... but it seems spring-cloud-task requires a binder. Is there a way to skip it?
SCSt 和 SCT 之间的连接是通过 spring-cloud-task-stream
和 spring-cloud-stream-binder-<type-of-binder>
依赖项完成的,没有其他方法。