Создаем первое приложение 💻#
Поздравляем, вы настроили FastStream и RabbitMQ! 🎉 Теперь пора создать первое приложение, которое будет принимать текстовые сообщения из очереди и обрабатывать их. В этом разделе мы напишем простой код, разберем, как он работает, и настроим обработку сообщений. А еще мы объясним, как правильно использовать декораторы broker.subscriber. Готовы начать кодить? Погнали! 🚀
Что мы сделаем? 📋#
Мы создадим приложение, которое:
- Слушает очередь
input-queueв RabbitMQ 📥. - Принимает текстовое сообщение, преобразует его в верхний регистр 🔠.
- Логирует результат обработки.
Это базовый пример, который покажет, как FastStream упрощает работу с брокерами сообщений. Публикация сообщений будет рассмотрена в разделе Взаимодействие между сервисами.
Шаг 1: Написание кода ✍️#
Создайте файл app.py в папке faststream-tutorial и добавьте следующий код:
Что здесь происходит? 🤔
RabbitBroker: Объект для подключения к RabbitMQ. Мы указываем адресamqp://guest:guest@localhost:5672/(логин, пароль и порт по умолчанию).FastStream: Основное приложение, которое управляет брокером.@broker.subscriber("input-queue"): Декоратор, реализованный как метод брокера, который регистрирует функциюhandle_messageкак подписчика на очередьinput-queue. Он указывает, что функция будет обрабатывать входящие сообщения.handle_message: Функция-обработчик, которая принимает строку, логирует её и выводит обработанную версию (в верхнем регистре).
Шаг 2: Запуск приложения ▶️#
Убедитесь, что RabbitMQ запущен (см. Установка и настройка). Если вы используете Docker, проверьте, что контейнер работает:
Запустите приложение FastStream:
Вы увидите вывод:
INFO - FastStream app starting...
INFO - input-queue | - `handle_message` waiting for messages
INFO - FastStream app started successfully! To exit press CTRL+C
Это означает, что приложение слушает очередь input-queue и готово обрабатывать сообщения! 🎉
Шаг 3: Практическое задание 📚#
Попробуйте закрепить знания:
- Измените функцию
handle_message, чтобы она логировала другой префикс, например,Ответ:вместоОбработано:. - Добавьте в
handle_messageлогирование длины входного сообщения (len(msg)) и проверьте результат. - Убедитесь, что RabbitMQ запущен, и попробуйте отправить сообщение в
input-queueчерез веб-интерфейс RabbitMQ (http://localhost:15672). Проверьте логи приложения.
Что дальше? 🗺️#
Вы создали и запустили своё первое приложение с FastStream! 🎉 Теперь вы знаете, как использовать декоратор broker.subscriber для обработки сообщений. В следующем разделе мы узнаем, как настроить взаимодействие между сервисами, чтобы публиковать и обрабатывать результаты в других очередях. Перейдите к Взаимодействие между сервисами, чтобы освоить этот процесс.
Если у вас есть идеи, вопросы или нужна помощь, загляните в официальную документацию FastStream, пишите в Telegram или Discord. Продолжайте творить! 🚀