Spring Cloud Task 未使用 Spring Cloud Stream using RabbitMQ 启动

Spring Cloud Task not started with Spring Cloud Stream using RabbitMQ

我正在试验 Spring 云 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 存储库中可用。

pluralsight.com.TaskController.launchTask(String) 中向 /tasks 发起 POST 请求后,我看到了一个 HTTP 响应。

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

在 RabbitMQ 控制台中,我可以看到连接是从输入和接收组件建立的,但我没有看到任何消息交换发生。

名称为 tasktopic 的队列的消息计数为零。

感谢任何有关如何继续解决此问题的指示和建议。

谢谢。

TaskIntakeApplication 中缺少@EnableTaskLauncher 注释。

@SpringBootApplication
@EnableTaskLauncher
public class PluralsightSpringcloudM3TaskintakeApplication {

    public static void main(String[] args) {
        SpringApplication.run(PluralsightSpringcloudM3TaskintakeApplication.class, args);
    }
}

我当前的实现有两个问题:

在入口和接收器模块中 -> 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 消息。