Bienvenida

1

Celery ¿Qué es, para qué sirve, cómo se usa?

2

Repositorio del proyecto

3

Arquitecturas de software basadas en mensajería y colas de tareas

4

Brokers de tareas: Servidores de mensajería y formas de usarlos

5

¿Cuándo debemos usar Celery?

6

Reto: Casos de uso de Celery

Bot de Slack

7

¿Cómo funciona un bot?

8

Cómo funciona el API de Slack para programación de bots (y parecidos y diferencias con otros APIs)

9

¿Cómo crear un bot reactivo?

10

Reto: posibles aplicaciones de bots de Slack, buscar ejemplos y entender cómo se llevarían a cabo

11

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

12

¿Qué es un broker de mensajería y cuándo debe usarse?

13

Conceptos: mecanismos de publicación/suscripción. Canales. Intercambiadores

14

Brokers de mensajería open source

15

Python con RabbitMQ uso básico de la terminal

16

Comparación de diferentes brokers de mensajería para trabajar con Celery

17

Reto: Crear una pequeña aplicación cliente-servidor que use RabbitMQ desde Python

Celery y brokers de mensajería

18

Creando un entorno de desarrollo para Celery

19

Instalación y creación de un programa básico pub/sub

20

Cómo usar Celery para programar un robot de Slack: diseño y comienzo de la implementación

21

Monitorización de tareas

22

Solucionando problemas

23

Reto: implementación y despliegue básico de un bot de Slack

Enrutado de tareas

24

Conceptos: enrutado de tareas y por qué se necesita

25

Enrutado manual

26

Mensajería en Celery: uso de Kombu

27

Enrutado automático

28

Reto: diseño de mecanismos de enrutado para un bot de Slack

Integración y despliegue en la nube

29

Estructura de mensajes en Celery y resultados de tareas

30

Tareas periódicas con Celery

31

Configuración de sistemas en la nube

32

Contenedores

33

Despliegue en un PaaS: Heroku

34

Uso de Celery con Node.js

35

Reto: despliegue en la nube (usando cuentas gratuitas)

Conclusiones

36

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

Curso de Celery 4

Curso de Celery 4

Juan Julián Merelo

Juan Julián Merelo

Uso de Celery con Node.js

34/36
Recursos

¿Cómo trabajar con diferentes lenguajes de programación?

El mundo del desarrollo de software es diverso y, a menudo, es necesario trabajar con diferentes lenguajes de programación en arquitectura y servicios. Esto puede deberse a varias razones. Una de ellas es que un equipo tiene más experiencia con un lenguaje en particular. Además, cada lenguaje ofrece bibliotecas específicas útiles para ciertos proyectos. Aunque Celery permite trabajar con varios lenguajes, necesitamos bibliotecas específicas para interactuar con él.

¿Cuál es el protocolo de Celery en otros lenguajes?

Celery tiene un protocolo específico que sigue dependiendo de la versión. Cuando utilizamos este sistema es crucial observar que algunas bibliotecas aún soportan protocolos de versiones anteriores, lo que puede requerir el uso de métodos alternativos para el envío y recepción de mensajes.

¿Es Node.js una buena opción para trabajar con Celery?

Node.js es una opción popular debido a que permite programar tanto el lado cliente como servidor utilizando el mismo lenguaje: JavaScript. Sin embargo, al utilizar Node.js con Celery es vital seguir ciertos pasos para garantizar la eficiencia.

  1. Versionado de Node.js: Utilizar un gestor de versiones como nvm nos ayuda a mantener las funcionalidades al día. Así podemos trabajar con versiones específicas sin contratiempos.
  2. Instalación y configuración: Luego de tener Node.js listo, verificamos que todas las bibliotecas necesarias estén instaladas y configuradas adecuadamente usando npm.

¿Cómo configurar el entorno de trabajo?

Configurar nuestro entorno de trabajo es esencial para asegurar la funcionalidad y fluidez del desarrollo.

Initializando nuestro proyecto con Node.js

Para inicializar nuestro entorno en Node.js, podemos emplear npm, definiendo las dependencias necesarias para trabajar con Celery:

npm install nodemon --save-dev

Nodemon es útil para reiniciar automáticamente la aplicación cuando detecta cambios en los archivos del proyecto.

Utilización de variables de entorno

Para manejar información sensible como claves API, se utilizan variables de entorno. Es recomendable no hardcodear estas variables directamente en el código, sino usar archivos .env.

require('dotenv').config();

Con dotenv, cargamos las variables de entorno desde un archivo .env, asegurando que no se filtren a repositorios públicos.

Control de tareas con Celery

Para controlar las tareas con Celery desde Node.js, se pueden solicitar múltiples tareas y registrar sus resultados:

const myFunction = async (taskArgs) => {
    try {
        const result = await someCeleryTask.apply(taskArgs);
        console.log(result);
    } catch (error) {
        console.error(error);
    }
};

Con un enfoque asíncrono, podemos manejar tareas de manera eficiente y mantener la aplicación receptiva.

¿Qué retos conlleva el uso de Celery en distintos lenguajes?

Al trabajar con Celery desde otros lenguajes, como JavaScript, puedes enfrentarte a ciertos desafíos:

  • Conocimiento de las tareas: Es crucial entender completamente los nombres de las tareas y cómo recibirán argumentos.
  • Compatibilidad: No todas las funciones y decoradores de Python tienen equivalentes directos en JavaScript.
  • Protocolo de comunicación: El protocolo debe ser compatible con el método de comunicación seleccionado para cada tarea.

Cualquier lenguaje que sea compatible con el protocolo AMQP puede ser utilizado con Celery, siempre y cuando se tenga la biblioteca adecuada.

Acceder a recursos adicionales y discusiones puede ser beneficioso si buscas expandir tu comprensión y habilidad con Celery y Node.js. Además, la interacción con la comunidad te permitirá resolver dudas y adquirir nuevas ideas sobre mejores prácticas. ¡Anímate y sigue explorando el potencial de Celery!

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Exelente maestro. Me parece que Platzi debería utilizar mas sus metodologías por que lo que el profe hizo fue primero contextualizar muy profundamente la lógica de todo antes de enseñarla. Ademas fue de lo mas complicado a lo mas practico, y esto es muy bueno por que en la vida real siempre uno va a lo mas práctico pero si no conoce que esta pasando de fondo esta frito.

La última parte de despliegue a una servicio de PaaS con Docker estuvo interesante.

BUEN CURSO! Y BUEN PROFESOR