Skip to content

Snuslyk/tz

Repository files navigation

Быстрый запуск

1. Создание .env

В корне проекта создать .env:

TELEGRAM_BOT_API_URL=https://api.telegram.org/bot<BOT_TOKEN>

👉 заменить <BOT_TOKEN> на токен Telegram-бота


2. Запуск проекта

Сборка и запуск всех сервисов:

docker compose up --build

Состав сервисов

RabbitMQ

Очередь сообщений (message broker)

UI управления:

http://localhost:15672

Логин/пароль:

guest / guest

producer-service (API)

REST API на NestJS

http://localhost:4242

Swagger / Scalar документация

http://localhost:4242/docs

consumer-service

Микросервис:

  • читает сообщения из RabbitMQ
  • обрабатывает их

Telegram бот

  • базу данных НЕ добавлял
  • ID чата Telegram хранится в оперативной памяти
  • после перезапуска контейнеров ID будет стёрт

Перед отправкой запросов на бек надо:

  1. Открыть Telegram
  2. Найти бота
  3. Отправить команду:
/start

👉 после этого chat_id сохраняется в памяти и бот сможет отправлять сообщения


Как работает обработка событий

  1. Пользователь отправляет POST-запрос на:
/producer/event

с любым JSON body, например:

{ "a": "aaa" }
  1. На стороне producer-service:
  • к объекту автоматически добавляется uuid
  • после этого событие отправляется в очередь RabbitMQ

Пример итогового объекта:

{
  "uuid": "generated-uuid",
  "a": "aaa"
}
  1. consumer-service:
  • получает сообщение из очереди
  • отправляет сообщение в Telegram-бота
  • сообщение приходит в чат, который ранее был сохранён через /start

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors