¿Tu Drupal tiene que hacer algo que tarda demasiado para ejecutarlo durante una petición HTTP? ¿Necesitas procesar cientos de elementos? ¿O simplemente quieres que una página empiece a mostrarse mientras una parte de su contenido todavía se está generando?
En este taller veremos diferentes estrategias para afrontar estos problemas en Drupal, desde las más sencillas hasta arquitecturas más desacopladas.
Empezaremos con hook_cron() y veremos cómo aprovechar el cron del sistema para lanzar procesos mediante Drush, sacando determinadas tareas del ciclo de una petición web.
Después entraremos en la Queue API y los Queue Workers, viendo cómo dividir trabajos grandes en unidades más pequeñas, procesarlas de forma controlada y afrontar aspectos como reintentos, concurrencia y trabajos que pueden tardar mucho tiempo.
Finalmente llegaremos al navegador con HTMX, recientemente incorporado a Drupal, para ver cómo podemos cargar o actualizar partes de una página de forma diferida. El objetivo no es hacer que el procesamiento sea mágicamente más rápido, sino evitar que el usuario tenga que esperar a que toda la información esté disponible para empezar a utilizar la página.
Durante el taller construiremos ejemplos prácticos y compararemos las diferentes alternativas:
hook_cron() → cron + Drush → Queue + Workers → HTMX
La pregunta que guiará el taller será:
¿Quién tiene que esperar y dónde debería ejecutarse este trabajo?
Porque no todos los problemas de rendimiento o de "asincronía" se resuelven con la misma herramienta.