Buen video, no había terminado de entender como comunicarme desde Celery hacia rabbitmq con lo que leí en la doc pero con este video la idea me queda algo más clara.
Bienvenida
Celery ¿Qué es, para qué sirve, cómo se usa?
Repositorio del proyecto
Arquitecturas de software basadas en mensajería y colas de tareas
Brokers de tareas: Servidores de mensajería y formas de usarlos
¿Cuándo debemos usar Celery?
Reto: Casos de uso de Celery
Bot de Slack
¿Cómo funciona un bot?
Cómo funciona el API de Slack para programación de bots (y parecidos y diferencias con otros APIs)
¿Cómo crear un bot reactivo?
Reto: posibles aplicaciones de bots de Slack, buscar ejemplos y entender cómo se llevarían a cabo
Reto: modificar el bot básico y crear alguno que responda a a algún tipo de petición o muestre algo
Brokers de mensajería
¿Qué es un broker de mensajería y cuándo debe usarse?
Conceptos: mecanismos de publicación/suscripción. Canales. Intercambiadores
Brokers de mensajería open source
Python con RabbitMQ uso básico de la terminal
Comparación de diferentes brokers de mensajería para trabajar con Celery
Reto: Crear una pequeña aplicación cliente-servidor que use RabbitMQ desde Python
Celery y brokers de mensajería
Creando un entorno de desarrollo para Celery
Instalación y creación de un programa básico pub/sub
Cómo usar Celery para programar un robot de Slack: diseño y comienzo de la implementación
Monitorización de tareas
Solucionando problemas
Reto: implementación y despliegue básico de un bot de Slack
Enrutado de tareas
Conceptos: enrutado de tareas y por qué se necesita
Enrutado manual
Mensajería en Celery: uso de Kombu
Enrutado automático
Reto: diseño de mecanismos de enrutado para un bot de Slack
Integración y despliegue en la nube
Estructura de mensajes en Celery y resultados de tareas
Tareas periódicas con Celery
Configuración de sistemas en la nube
Contenedores
Despliegue en un PaaS: Heroku
Uso de Celery con Node.js
Reto: despliegue en la nube (usando cuentas gratuitas)
Conclusiones
Despedida, conclusiones y a dónde ir desde aquí
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Entender cómo trabajar con rutas y colas de manera eficiente es fundamental para la optimización y funcionalidad de tus aplicaciones distribuidas. En este artículo, exploraremos cómo Kombu puede ser usado junto con Celery para lograrlo. Kombu ofrece una flexibilidad extraordinaria al permitirte trabajar con diferentes sistemas de mensajería de forma uniforme, lo que te posibilita personalizar y optimizar tus rutas y colas sin complicaciones.
Kombu es una biblioteca de mensajería que se utiliza en conjunto con Celery para manejar las colas de tareas. Es fundamental porque permite una interacción suave con diferentes sistemas de mensajería, sumado a que abstrae la complejidad de trabajar con diferentes protocolos como AMQP.
Primero, asegúrate de importar los objetos correctos y transferir la complejidad de la definición de colas y rutas al cliente.
from celery import Celery
from kombu import Exchange, Queue
app = Celery('nombre_cliente')
app.conf.task_queues = (
Queue('ruta_uno', Exchange('default'), routing_key='default'),
)
app.conf.task_routes = {
'app.tasks.*': {'queue': 'ruta_uno'},
}
Kombu y Celery permiten especificar características avanzadas en colas para priorizar ciertas tareas:
from kombu import Queue, Exchange
app.conf.task_queues = (
Queue('ruta_prioridad', Exchange('default'),
routing_key='prioridad',
queue_arguments={'x-max-priority': 10}),
)
app.conf.task_routes = {
'app.tasks.high_pri_task': {'queue': 'ruta_prioridad'},
}
Uno de los aspectos más críticos cuando se trabaja con mensajería es asegurar que las tareas sean enviadas correctamente y manejar los errores efectivamente:
try:
app.send_task('app.tasks.procesar_datos', args=[data])
except Exception as e:
handle_error(e)
La implementación de esta estructura en el cliente brinda múltiples ventajas:
Implementa estas estrategias para optimizar tu entorno de trabajo con Celery y Kombu, asegurando máxima eficacia y estabilidad en el procesamiento de tareas. Recuerda experimentar y ajustar las configuraciones según las necesidades específicas de tu aplicación. ¡Continúa aprendiendo y desarrollando tus habilidades en el manejo de sistemas distribuidos!
Aportes 1
Preguntas 0
Buen video, no había terminado de entender como comunicarme desde Celery hacia rabbitmq con lo que leí en la doc pero con este video la idea me queda algo más clara.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?