Entre todas las mejoras de rendimiento que podemos aplicar a nuestras aplicaciones, una de las más interesantes, y antes bastante compleja de hacer, es el concepto de la aplicación de tareas asíncronas para no hacer esperar al usuario toda la ejecución de algo que no tiene que ver con el objetivo principal de lo que está haciendo

Por ejemplo, en el caso de un usuario que quiere enviar un comentario a una conferencia dentro de nuestro proyecto, tiene sentido lógicamente hacerle esperar la respuesta de la base de datos al insert del comentario, pero sin embargo, le estamos haciendo sufrir el costo de tiempo que al API de akismet necesita para procesar el control del SPAM, cosa que no está orientado al objetivo que el usuario tiene que es enviarnos su comentario. De la misma forma, no solo existe la posibilidad de que akismet esté procesando lentamente las peticiones, sino también que esté fuera de servicio por ejemplo.

En este capítulo, vamos a desacoplar el control de SPAM, dejando al usuario esperar solo la respuesta de la inserción de su comentario y luego de forma asíncrona, controlaremos si el comentario agregado es o no un SPAM

Con esto logramos entender cómo funciona el concepto de procesos asíncronos con symfony, logrando separar la lógica y haciendo esperar al usuario solamente lo que necesita esperar.

Existen diferentes casos de uso en los que podemos aplicar esta técnica

  • Envío de correos para no hacer esperar al usuario el procesamiento del envío al grabar los registros
  • Envío de alertas a los usuarios en general utilizando APIs de terceros como firebird y otras similares
  • Generación de reportes que implican mucho procesamiento de forma  asíncrona enviando el reporte por correo a los usuarios cuando estén listos

Y muchas otras que se nos pueden ocurrir.

En el siguiente video, vamos a tratar el concepto de workflows o flujos de trabajo, esto nos ayudará organizar mejor nuestra lógica de negocio y manejar por ejemplo los estado por los que un entity puede ir pasando con el tiempo.

Otros artículos de esta serie

  1. Lista de reproducción en nuestro canal de Youtube
  2. Symfony 5: La Vía Rápida | Paso 1 – Revisando tu entorno de trabajo
  3. Symfony 5: La Vía Rápida | Paso 2 – Presentando el proyecto
  4. Symfony 5: La Vía Rápida | Paso 3 – Desde cero hasta producción
  5. Symfony 5: La Vía Rápida | Paso 4 – Git, composer y Symfony Flex
  6. Symfony 5: La Vía Rápida | Paso 5 – Solucionando problemas
  7. Symfony 5: La Vía Rápida | Paso 6 – Creando nuestra primera página
  8. Symfony 5: La Vía Rápida | Paso 7 – Creando una base de datos con docker
  9. Symfony 5: La Vía Rápida | Paso 8 – Definiendo la estructura de datos
  10. Symfony 5: La Vía Rápida | Paso 9 – Configurando el panel de administración
  11. Symfony 5: La Vía Rápida | Paso 10 – Construyendo la interfaz de usuario
  12. Symfony 5: La Vía Rápida | Paso 11 – Almacenando las sesiones en redis
  13. Symfony 5: La Vía Rápida | Paso 12 – Escuchado eventos (events and subscribers)
  14. Symfony 5: La Vía Rápida | Paso 13 - Gestionando el ciclo de vida de los objetos de doctrine
  15. Symfony 5 La Vía Rapida | Paso 14 - Formularios - Parte 1
  16. Symfony 5 La Vía Rápida | Paso 14 - Formularios - Parte 2 - Subida de archivos
  17. Symfony 5 La Vía Rápida | Paso 15 - Asegurando el panel de administración
  18. Symfony 5 La Vía Rápida | Paso 16 - Previniendo spam con una API
  19. Symfony 5 La Vía Rápida | Paso 17 – Pruebas Automatizadas
  20. Symfony 5 La Vía Rápida | Paso 18 – Volviéndonos Asíncronos
  21. Symfony 5 La Vía Rápida - Paso 19 - Tomando decisiones con un workflow
  22. Symfony 5 La Vía Rápida - Paso 20 - Envío de correos electrónicos a los administradores
  23. Symfony 5 La Vía Rápida | Paso 21 - Almacenando en caché para mejorar el rendimiento

¿Quieres comprarme un café?

  • Bitcoin
  • Ethereum
Scan to Donate Bitcoin to bc1qevxv68nfq427zfkwdjg7802dt00t3h3ulq0rxa

Dona Bitcoin a NeuroSimbiosis

Escanea el código QR o copia la dirección de abajo para realizar donaciones

Scan to Donate Ethereum to 0x47742BE8B21052ce25b33d6A0e09113826AF341f

Dona Ethereum a NeuroSimbiosis

Escanea el código QR o copia la dirección de abajo para realizar donaciones

Deja un comentario