En este flujo de sistemas lo que sucede es:
- El usuario se comunica envia mensaje “pizza 2000”,
- El mensaje llega a los servidores de Telegram,
- Telegram se comunica con Cloudflared,
- Cloudflared redirecciona los datos hacia nuestro servidor Django,
- Django hace 2 cosas:
- responde 200 OK a Telegram y,
- Lleva la peticion a Redis,
- Ambas cosas suceden al mismo tiempo
- Redis carga los datos (mensaje y destinatario) en una cola para Celerys,
- Celerys se encarga de:
- realizar las tareas que tiene asignada sobre el mensaje que recibe,
- envia el mensaje final al usuario con los datos procesados.
Resumen Técnico de Gemini
- Telegram → Cloudflare: Túnel seguro HTTPS.
- Cloudflare → Django (View): Recibe el JSON.
- Validación rápida: ¿Es un mensaje válido?
- Decisión: ¿Es algo rápido (ej:
/ping) o lento (ej: procesar gasto con IA)?
- Django → Redis (SI es tarea lenta): Django empaqueta la tarea y la envía a Redis. Django retorna
200 OK inmediatamente a Telegram para que no se queje.
- Redis (Broker): Mantiene la tarea en cola (Queue) esperando turno.
- Celery (Worker) → PostgreSQL / Telegram API:
- Celery detecta la tarea en Redis.
- Ejecuta la lógica pesada (Regex, Consultas a DB, llamadas a OpenAI).
- Guarda el resultado en PostgreSQL.
- Envía la respuesta final al usuario usando
bot.send_message().