From f191d740314836ae12b897b6e9f5151ecc39e15f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Falc=C3=B3n?= Date: Wed, 17 Jun 2026 09:08:25 +0200 Subject: [PATCH] fix(queue): add supervisor worker for the ai queue (#546) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Problema Los jobs de auto-categorización con IA (\`CategorizeTransactionWithAi\`) se encolan en la cola dedicada \`ai\` (\`config/ai_categorization.php\` → \`'queue' => 'ai'\`), pero **ningún programa de supervisor consumía esa cola en producción**. Resultado observado en prod: - **10.878 jobs pendientes** en la cola \`ai\`, todos \`CategorizeTransactionWithAi\`, el más antiguo del 2026-06-15 (cuando se activó el flag). - **0 transacciones** con \`category_source = 'ai'\` en toda la base de datos. La IA nunca categorizó nada en producción. - Ningún \`failed_job\` en la cola \`ai\`: los jobs no fallaban, simplemente nunca se ejecutaban. ## Fix Añade un programa \`queue-worker-ai\` en \`docker/supervisor/supervisord.conf\`, replicando el patrón de los workers \`emails\` y \`default\`. Se mantiene la cola \`ai\` aislada (worker propio) a propósito, para que su backlog no retrase los syncs bancarios. Tras el deploy el worker arranca solo (\`autostart=true\`) y drena el backlog acumulado. --- docker/supervisor/supervisord.conf | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docker/supervisor/supervisord.conf b/docker/supervisor/supervisord.conf index c39743ed..9f7bd766 100644 --- a/docker/supervisor/supervisord.conf +++ b/docker/supervisor/supervisord.conf @@ -76,3 +76,14 @@ redirect_stderr=true stdout_logfile=/var/log/queue-worker.log stopwaitsecs=3600 numprocs=2 + +[program:queue-worker-ai] +process_name=%(program_name)s_%(process_num)02d +command=php /app/artisan queue:work database --queue=ai --sleep=1 --tries=3 --max-time=3600 +user=www-data +autostart=true +autorestart=true +redirect_stderr=true +stdout_logfile=/var/log/queue-worker-ai.log +stopwaitsecs=3600 +numprocs=2