fix(queue): add supervisor worker for the ai queue (#546)

## 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.
This commit is contained in:
Víctor Falcón 2026-06-17 09:08:25 +02:00 committed by GitHub
parent 220b1e11f1
commit f191d74031
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 11 additions and 0 deletions

View File

@ -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