Cómo Laravel queue nos salvó del lento AI-parsing

Implementamos Laravel queue para acelerar el AI-parsing, lo que mejoró significativamente el rendimiento de nuestro producto.

---

Introducción al problema

En uno de esos días intensos, mientras discutíamos los problemas actuales en Slack, uno de los desarrolladores planteó la cuestión del lento AI-parsing. La discusión se intensificó cuando nos dimos cuenta de que los usuarios comenzaban a quejarse de las demoras en el procesamiento de datos. En ese momento, quedó claro: algo tenía que cambiar.

Contexto: por qué es importante

El lento parsing de datos no solo ralentizaba nuestros procesos internos, sino que también afectaba negativamente la experiencia de los usuarios. Los clientes que utilizaban nuestro producto para analizar currículos comenzaron a perder confianza en el sistema. Si no logramos resolver este problema rápidamente, podría llevar a una disminución en el número de suscripciones y, como consecuencia, a una pérdida de ingresos. En esta situación, cada uno de nosotros sentía la presión: era importante para el equipo, para el negocio y, lo más importante, para nuestros usuarios.

Detalles del problema

El problema se manifestaba en que las solicitudes al AI-parser tardaban demasiado tiempo — a veces hasta 10 segundos por currículo. Cuando varios usuarios trabajaban en el sistema al mismo tiempo, la carga aumentaba y el tiempo de espera se incrementaba hasta 20 segundos. Esto provocó una serie de quejas, y uno de los ejemplos que recibimos fue de un cliente que no pudo obtener los resultados del análisis de sus candidatos a tiempo. Nos dimos cuenta de que si la situación no cambiaba, esto llevaría a la fuga de clientes.

Primeras intentos de solución

Como primer paso, decidimos optimizar el propio parser, reduciendo el tamaño de los datos procesados. Sin embargo, esto no dio el resultado esperado. También intentamos aumentar el número de servidores que procesaban las solicitudes, pero esto incrementaba los costos sin una mejora notable en el rendimiento. Cada una de estas soluciones enfrentaba nuevos problemas, y entendimos que necesitábamos buscar otros enfoques para resolver esta tarea.

Enfoque técnico: implementación de Laravel queue

Finalmente, llegamos a la decisión de utilizar Laravel queue. Esto nos permitió distribuir las tareas de procesamiento de currículos entre varios trabajadores, lo que aumentó significativamente la velocidad de procesamiento. Así es como lo implementamos:

use App\Jobs\ParseResume;

foreach ($resumes as $resume) {
    ParseResume::dispatch($resume);
}

Esta solución nos permitió procesar las solicitudes de manera asíncrona, lo que mejoró notablemente la capacidad de respuesta del sistema y redujo la carga en los servidores.

Cambios en el producto

Después de implementar Laravel queue, logramos reducir el tiempo de procesamiento de currículos a 3-5 segundos. Los usuarios comenzaron a recibir resultados casi al instante. Esto no solo aumentó la satisfacción de los clientes, sino que también nos permitió recuperar la confianza en el producto. Recibimos comentarios positivos y la cantidad de quejas disminuyó drásticamente. Ahora los usuarios podían concentrarse en otros aspectos de su trabajo sin perder tiempo esperando resultados.

Lecciones aprendidas

Este proceso nos enseñó varias lecciones importantes:

  • El procesamiento asíncrono de tareas aumenta significativamente el rendimiento.
  • No todas las soluciones son evidentes; a veces vale la pena probar varios enfoques antes de encontrar el correcto.
  • Es importante considerar la retroalimentación de los usuarios y reaccionar rápidamente a las quejas.
  • La optimización a nivel de código puede ser insuficiente sin una arquitectura adecuada.
  • El trabajo en equipo y la discusión abierta de problemas ayudan a encontrar soluciones más efectivas.

Qué significa esto para los candidatos

Para los candidatos, esto significa que en Fitlane AI estamos buscando activamente ingenieros dispuestos a resolver problemas reales y mejorar la experiencia del usuario. Tenemos la oportunidad de implementar sus ideas y ver cómo impactan en el producto. Si deseas trabajar en un equipo que valora tus ideas y busca un desarrollo constante, estaremos encantados de conocerte.

Qué significa esto para los reclutadores

Los reclutadores deben entender que buscamos no solo habilidades técnicas, sino también capacidad de pensamiento crítico. Necesitamos profesionales que puedan proponer soluciones y no solo ejecutar tareas. Si tienes candidatos que están listos para trabajar en un entorno dinámico y son capaces de adaptarse, asegúrate de prestarles atención.

Próximos pasos

A pesar del éxito, entendemos que debemos continuar monitoreando el rendimiento y buscar nuevas oportunidades de optimización. Estamos considerando la posibilidad de integrar otras tecnologías, como la contenedorización, para mejorar la escalabilidad del sistema. Si tuviéramos que empezar de nuevo, quizás habríamos probado este enfoque antes para llegar más rápido a una solución efectiva. ---

Materiales relacionados

  • Code screenshot plannedКод обработки резюме
    Скриншот кода, демонстрирующий использование Laravel queue для обработки резюме.
  • Chart plannedГрафик производительности
    График, показывающий улучшение времени обработки резюме до и после внедрения.

También en Fitlane AI

Temas: Laravel queue, AI-парсинг, оптимизация производительности, Laravel, очереди задач, продукт Fitlane, разработка