Skip to main content

RabbitMQ Consumer Transport

Consume Telegram updates from a RabbitMQ queue.

Configuration

application.yml:

telegram:
bot:
token: ${BOT_TOKEN}
transport: RABBIT_CONSUMER
rabbit-consumer:
queue: telegram-updates
routing-key: updates.*

spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
virtual-host: /

Docker Deployment

docker-compose.yml:

version: '3.8'

services:
rabbitmq:
image: rabbitmq:3-management
ports:
- "5672:5672"
- "15672:15672" # Management UI
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest

bot:
build: .
environment:
TELEGRAM_BOT_TRANSPORT: RABBIT_CONSUMER
SPRING_RABBITMQ_HOST: rabbitmq
depends_on:
- rabbitmq
restart: unless-stopped

Example

@BotController
public class RabbitBotHandler {
@BotCommand("/start")
public String onStart() {
return "Bot connected to RabbitMQ!";
}
}

See RabbitMQ Documentation for advanced queue setup.


All transports configured! Next: Advanced Features