5. 从Stream启动任务我们可以从Spring Cloud Stream触发任务 。为了达到这个目的,我们使用@EnableTaskLaucnher注解 。这一次,我们使用Spring Boot应用程序添加注释,TaskSink将可用:
@SpringBootApplication@EnableTaskLauncherpublic class StreamTaskSinkApplication {public static void main(String[] args) {SpringApplication.run(TaskSinkApplication.class, args);}}
TaskSink从一个流中接收消息,信息中包含GenericMessage含有TaskLaunchRequest作为有效负载 。然后它触发任务启动请求中提供的基于任务的坐标 。
要使TaskSink起作用,我们需要配置一个实现TaskLauncher接口的bean 。出于测试目的,我们在这里Mock实现:
@Beanpublic TaskLauncher taskLauncher() {return mock(TaskLauncher.class);}
我们需要注意的是,TaskLauncher接口仅在添加
spring-cloud-deployer-local依赖项后才可用:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-deployer-local</artifactId><version>1.3.1.RELEASE</version></dependency>
我们可以测试通过调用发起的任务是否输入了Sink:
public class SpringCloudTaskSinkApplicationIntegrationTest{@Autowiredprivate Sink sink;//}
现在,我们创建一个TaskLaunchRequest实例,并将其作为GenericMessage < TaskLaunchRequest >对象的有效负载发送 。然后我们可以调用Sink的输入通道,将GenericMessage对象保留在通道中 。
六,结论在本文中,我们探讨了Spring Cloud Task的执行方式以及如何配置它以在数据库中记录其事件 。我们还观察了如何定义Spring Batch作业并将其存储在TaskRepository中 。最后,我们解释了如何从Spring Cloud Stream中触发Task 。
【什么是Spring Cloud Task啊?简单示例下】
推荐阅读
- 她救了他,他宠她一生?全新重生甜宠文-这是她第二次成为他的心尖宠
- 日语中的修饰语是什么?日语修饰词是什么意思
- 明朝朱棣母亲是谁?朱棣的亲生母亲到底是谁_1
- 前端开发:Laravel和Vue.JS为什么如此搭?
- 我对于家庭的价值是什么?谈谈你的家庭价值观
- 明朝对官员为什么这么残忍?明朝那些事儿的好处
- 朱元璋送给徐达什么东西害死了他?徐达在的话朱棣会成功吗
- 为什么做的电饭煲蛋糕不蓬松 电饭煲做的蛋糕不蓬松原因是什么
- 曹操为什么没有杀死刘备?谁劝曹操除掉刘备
- 空调扇和空调的区别是什么 空调扇和空调的区别分析