Spring Cloud Task не запускается с Spring Cloud Stream с использованием RabbitMQ

Я экспериментирую с API Spring Cloud в рамках курса по микросервисам.

Чтобы настроить задачу без сервера, я использую 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

Компонент Sink для получения TaskLaunchRequest и пересылки в облачную задачу - https://github.com/Omkar-Shetkar/pluralsight-springcloud-m3-tasksink

Настроив указанные выше компоненты, убедитесь, что компонент задачи доступен в локальном репозитории maven. Spring Cloud Task не запускается с Spring Cloud Stream с использованием RabbitMQ

После запуска запроса POST на /tasks в pluralsight.com.TaskController.launchTask(String) я вижу ответ HTTP.

Spring Cloud Task не запускается с Spring Cloud Stream с использованием RabbitMQ

Но я не видел никаких обновлений в базе данных журналов задач, связанных с бессерверной задачей. Это означает, что сама задача не вызывается.

В консоли RabbitMQ я мог видеть, что соединения устанавливаются из компонентов приема и приемника, но я не вижу, чтобы происходил обмен сообщениями.

Spring Cloud Task не запускается с Spring Cloud Stream с использованием RabbitMQ

Очередь с именем tasktopic имеет НУЛЕВОЕ количество сообщений.

Spring Cloud Task не запускается с Spring Cloud Stream с использованием RabbitMQ

Цените любые указатели и предложения о том, как действовать, чтобы решить эту проблему.

Спасибо.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
287
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В TaskIntakeApplication отсутствует аннотация @EnableTaskLauncher.

@SpringBootApplication
@EnableTaskLauncher
public class PluralsightSpringcloudM3TaskintakeApplication {

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

Я полагаю, что @EnableTaskLauncher должен быть с задачей стока. После того, как я внес предложенное изменение, я получил следующую ошибку: Поле taskLauncher в org.springframework.cloud.task.launcher.TaskLauncherSink требовало bean-объекта типа org.springframework.cloud.deployer.spi.task.TaskLauncher, который не удалось найти. Точка внедрения имеет следующие аннотации: - @ org.springframework.beans.factory.annotation.Autowired (Requ ired = true) Действие: Рассмотрите возможность определения bean-компонента типа org.springframework.cloud.deployer.spi.task.TaskLauncher 'в вашей конфигурации.

Omkar Shetkar 27.10.2018 15:47
Ответ принят как подходящий

В моей текущей реализации было две проблемы:

В модулях приема и приема -> 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.

Другие вопросы по теме