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铆

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesi贸n a prueba de IA

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

1 D铆as
1 Hrs
20 Min
31 Seg
Curso de Celery 4

Curso de Celery 4

Juan Juli谩n Merelo

Juan Juli谩n Merelo

Enrutado manual

25/36
Resources

How to work with multiple workers in Celery?

Working with multiple workers in Celery is not only efficient, but necessary to handle tasks of different nature or priority. This strategy allows developers to effectively manage different message queues, assigning specific workers for each type of task.

Why use multiple workers?

The use of multiple workers is recommended for:

  • Encapsulated tasks: For tasks related to containers or requiring specific processing.
  • Different priorities: Allocate greater resources to high priority tasks while equally distributing lower priority tasks.
  • Robust system architecture: Follow recommended practices in tools such as RabbitMQ and Celery to maximize performance and efficiency.

How to configure specific workers by task type?

Workers can be configured to listen to specific messages or queues. Here is a basic example to understand how queue configurations work:

from celery import Celery
app = Celery('tasks',  broker='pyamqp://guest@localhost//')
 @app.taskdef add(x, y): return x + y
 @app.taskdef multiply(x, y): return x * y
app.conf.task_routes = { ' tasks.add': {'queue': 'default'}, ' tasks.multiply': {'queue': 'priority'}

How to route tasks manually?

Manual queue management provides additional control over the flow of tasks. Here, the example illustrates how to manually route events between different queues using Celery:

from some_module import process_command
def process_event(event): if event['type'] == 'message' and not event.get('subtype'): process_command.apply_async((event['text'],),  queue='commands')

How to start and run multiple workers?

Once the queues and workers have been configured, you can create specific processes to handle those tasks:

  • Start the default worker: celery -A tasks worker --queue=default
  • Start the priority worker: celery -A tasks worker --queue=priority

What is the benefit of distributed task execution?

The main benefit of distributed execution lies in the ability to handle multiple tasks concurrently, optimizing resource usage and increasing system resilience. In addition, it allows scalability, both on local servers and on cloud servers.

Real-life example: Large-scale deployments

Imagine that in a cloud application, where data processing is critical, 20 geographically and functionally distributed workers are deployed. This architecture not only improves efficiency, but also minimizes the risk of data or message loss, leveraging the infrastructure to levels previously unattainable with traditional non-distributed architectures.

Be encouraged to continue exploring Celery's capabilities in upcoming lessons, where more advanced routing solutions and other architectural strategies will be covered. 馃帀

Contributions 1

Questions 0

Sort by:

Want to see more contributions, questions and answers from the community?

Creo que todos abandonaron antes de terminar el curso. Es cierto que esta medio flojo. Yo no s茅 qu茅 pensar, tanto lo te贸rico como lo pr谩ctico es malo, muy b谩sico y no est谩 dado apropiadamente, muy desordenado, se repiten cosas que ya se dijeron. En ciertas partes se hace algo pr谩ctico que no acompa帽a bien lo te贸rico. Pero bueno, en general los cursos de Platzi son de esta forma, y no se le exige nada a ning煤n profesor.