Symfony 5 La Vía Rápida | Paso 18 – Volviéndonos Asíncronos

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.

[sc name=»posts_symfony5_la_via_rapida» ]

Descubre más desde Neurosimbiosis

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *