Spring Cloud Task不是使用RabbitMQ从Spring Cloud Stream开始的

时间:2018-10-23 14:42:04

标签: rabbitmq spring-cloud spring-cloud-stream spring-cloud-task

我正在尝试将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存储库中可用。 enter image description here

/tasks的{​​{1}}上发起POST请求后,我看到一个HTTP响应。

enter image description here

但是,我看不到与无服务器任务相关联的tasklogs数据库中的任何更新。 这意味着,它自己的任务不会被调用。

在RabbitMQ控制台中,我可以看到进气口和水槽组件已建立连接,但是我看不到任何消息交换。

enter image description here

名称为pluralsight.com.TaskController.launchTask(String)的队列的邮件计数为零。

enter image description here

赞赏有关如何解决此问题的任何指示和建议。

谢谢。

2 个答案:

答案 0 :(得分:0)

TaskIntakeApplication中缺少

@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消息。