17

Celery, la próxima librería de Python que necesitas aprender

148Puntos

hace 5 años

Celery es una biblioteca para colas de tareas distribuidas. Lo que se puede leer también de esta forma: “Es una biblioteca para una cosa que no uso, con otra cosa que no creo que necesite, con otra que a lo mejor necesito pero por lo pronto me estoy apañando muy bien sin ella” y esto a su vez pudiera llevarte a pensar: “OK, not for me. Voy mejor a aprender este último framework de JavaScript que acaba de salir”.

Mi intención, al redactar este artículo, es tratar de convencerte de que Celery es la próxima librería de Python que necesitas aprender (en lugar del susodicho framework de JavaScript).

La última palabra en la definición simple es: distribuidas. Vamos a olvidarnos que es un adjetivo y pensemos que se refiere a aplicaciones distribuidas, es decir, aplicaciones que se ejecutan de forma independiente.

Tareas Distribuidas

Hoy en día, todas las aplicaciones son así. O en una sola caja o en muchas cajas, o distribuidas en hilos de procesador o cualquier otro tipo de hilos, o en diferentes máquinas virtuales o contenedores; hoy en día todas las aplicaciones están distribuidas y muy posiblemente en la nube.

¿Necesitas conocer bibliotecas que trabajen con este tipo de aplicaciones? Sí. Por si te queda alguna duda. La respuesta es: Sí.

¿Qué pasa con las tareas? Hace muchos años, en la prehistoria de la informática, los sistemas de proceso por lotes recibían trabajos ordenados, los ejecutaban e imprimían el resultado en tarjetas perforadas, de esa forma se optimizaba el uso del procesador: todo el tiempo estaba ocupado, a costa del tiempo que hace falta para recibir el resultado de la tarea. ¿Hoy en día? Los procesadores son baratos, pero pagas no porque estén ocupados, sino por el tiempo que se están ejecutando.

Un contenedor en Amazon va a costar lo mismo con o sin tareas que ejecutar. ¿Procesar por lotes? Tiene todo el sentido del mundo, porque se paga lo mismo por llevar a cabo muchas más tareas. ¿Y el tiempo de espera? En tiempos prehistóricos no podías reproducir los grandes ordenadores para que devolvieran las tareas más rápidamente.

En nuestros tiempos, es simplemente cuestión de usar más recursos. Precisamente dividir un proceso de negocio en tareas que se pueden llevar a cabo de forma independiente permite que se ejecuten tareas en todos los procesos que se deseen. Quizás pagando, pero al menos ese pago va a estar optimizado.

¿Para qué sirve Celery?

De manera similar, hemos introducido el concepto de tareas: Celery es un marco de trabajo que sirve para crear aplicaciones basadas en tareas, donde hay creadores y consumidores de estas mismas tareas y con un modelo que permite optimizar el tiempo de respuesta, trabajar con todo tipo de servicios y servidores, y además, hacerlo desde un lenguaje estándar de la industria: Python.

Con Platzi, tú también puedes formarte y empezar con los cursos de Python.

Y es que Celery es una librería madura, única en su género (incluso entre otros lenguajes), que permite crear aplicaciones eficientes, nativas en la nube y económicas. ¿Qué más se puede pedir? Incluso aunque no conozcas Python o no trabajes con él, es muy posible que tengas que integrar algo si trabajas en la industria en una aplicación que lo incluya. Y el modelo que usa es muy interesante para todo tipo de lenguajes y aplicaciones. ¿Qué esperas, por tanto, para aprender Celery hoy, con este curso de Platzi?

JJ
JJ
jjmerelo

148Puntos

hace 5 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
4
2104Puntos

Celery Rocks!!!.
Aqui va un consejo para crear WF controlados para tareas largas que habia escrito hace algun tiempo.

Celery Largos Procesos

Saludos y Happy Coding!!!.

2

Gracias por el aporte 😃
Tengo una duda encuestion a esto, no se si me estoy confundiendo, ¿Async IO por asi decirse es la competencia de Celery? o ¿Las dos se usan para propositos diferentes?

Saludos. 😃

3
148Puntos
5 años

Son diferentes. AsyncIO sirve para crear servidores que respondan de forma asíncrona a las entradas y en un solo proceso, no es distribuido y multiproceso como Celery. Celery gestiona colas de tareas y permite arrancar y gestionar varios procesos simultáneamente.
En algunos casos el caso de uso podía ser similar (un solo proceso respondiendo a peticiones de un frontend), pero en general Celery es mucho más potente, más configurable, y tiene muchas más aplicaciones

1
5 años

Muchas gracias jjmerelo,
Ya comprendi, gracias por explicarme esa gran diferencia! te lo agradezco.

Saludos!

1
3Puntos

Hola, no puedo acceder al curo, da error!

1
18Puntos

I really like reading through a post that can make people think. Also, many thanks for permitting me to comment!
slither io

1
7Puntos

I think this is among the most important info for me. And i’m glad reading your article. But want to remark on few general things, The website style is wonderful, the articles is really great.
regards,
Factocert