我正在尝试将Spring Cloud API作为微服务课程的一部分。
要设置无服务器任务,我正在使用Cloud Task,Cloud Stream(RabbitMQ)和Spring Web。
为此,我设置了以下项目:
要执行的无服务器任务- https://github.com/Omkar-Shetkar/pluralsight-springcloud-m3-task
用于接收用户的Http请求并提交给RabbitMQ的组件- https://github.com/Omkar-Shetkar/pluralsight-springcloud-m3-taskintake
接收器组件接收TaskLaunchRequest并转发到云任务-https://github.com/Omkar-Shetkar/pluralsight-springcloud-m3-tasksink
在组件上方进行了设置,请确保任务组件在本地Maven存储库中可用。
在/tasks
的{{1}}上发起POST请求后,我看到一个HTTP响应。
但是,我看不到与无服务器任务相关联的tasklogs数据库中的任何更新。 这意味着,它自己的任务不会被调用。
在RabbitMQ控制台中,我可以看到进气口和水槽组件已建立连接,但是我看不到任何消息交换。
名称为pluralsight.com.TaskController.launchTask(String)
的队列的邮件计数为零。
赞赏有关如何解决此问题的任何指示和建议。
谢谢。
答案 0 :(得分:0)
@EnableTaskLauncher批注。
@SpringBootApplication
@EnableTaskLauncher
public class PluralsightSpringcloudM3TaskintakeApplication {
public static void main(String[] args) {
SpringApplication.run(PluralsightSpringcloudM3TaskintakeApplication.class, args);
}
}
答案 1 :(得分:0)
我当前的实现有两个问题:
在进水和水槽模块-> application.properties 中,绑定属性键错误。
应该是:
在进气模块中
spring.cloud.stream.bindings.output.destination=tasktopic
在接收器模块中
spring.cloud.stream.bindings.input.destination=tasktopic
此外,宿模块pom.xml中的本地云部署程序版本不兼容。
更新为:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-deployer-local</artifactId>
<version>1.3.0.RELEASE</version>
</dependency>
通过这些更改,我可以获取RabbitMQ消息。