Skip to Content
TecnicaInfrastrutturaBull Board - Implementazione Completata ✅

Bull Board - Implementazione Completata ✅

Riepilogo Modifiche

La Bull Board è stata completamente sistemata e ora funziona correttamente con tutte le funzionalità necessarie per un admin di gestione processi.

File Creati/Modificati

1. Configurazione Core

  • src/lib/bullBoard.ts - Configurazione centralizzata Bull Board
    • Setup con tutti gli 8 queue adapters
    • Helper per statistiche aggregate
    • Funzione cleanup automatico job vecchi

2. Route API Bull Board

  • src/app/api/admin/bull-board/route.ts - Route principale UI

    • Restituisce l’HTML UI di Bull Board
    • Gestisce GET/POST/PUT/DELETE
    • Fallback a UI statica da CDN
  • src/app/api/admin/bull-board/[...path]/route.ts - Catch-all route

    • Gestisce routing API interno di Bull Board
    • Endpoints per jobs, counts, etc.

3. Route API Admin Avanzate

  • src/app/api/admin/queues/metrics/route.ts

    • Metriche complete di tutte le code
    • Totali aggregati
    • Conteggio workers
  • src/app/api/admin/queues/actions/route.ts

    • Pause/Resume code
    • Clean (rimozione job vecchi)
    • Drain (svuota waiting)
    • Obliterate (cancella completamente)
  • src/app/api/admin/queues/cleanup/route.ts

    • Cleanup automatico intelligente
    • Preview senza eseguire
    • Configurazione grace period
  • src/app/api/admin/queues/[queueName]/jobs/route.ts

    • Lista job per stato
    • Paginazione
    • Filtri avanzati

4. Documentazione

  • docs/BULL_BOARD_ADMIN.md - Guida amministratore completa

    • Tutte le API disponibili
    • Esempi curl
    • Troubleshooting
    • Best practices
    • Automazione
  • docs/BULLMQ_QUICKSTART.md - Quick start aggiornato

    • Setup rapido
    • Accesso dashboard
    • Risoluzione problemi comuni

Funzionalità Implementate

✅ Dashboard UI

  • Interfaccia web completa su /api/admin/bull-board
  • Visualizzazione real-time di tutte le code
  • Dettagli job con stacktrace
  • Azioni dirette: retry, remove, pause/resume

✅ Metriche Complete

GET /api/admin/queues/metrics
  • Contatori per ogni coda (waiting, active, completed, failed, delayed)
  • Stato pausa
  • Workers attivi
  • Totali aggregati

✅ Gestione Code

POST /api/admin/queues/actions

Azioni disponibili:

  • pause - Mette in pausa
  • resume - Riprende elaborazione
  • clean - Rimuove job vecchi (completed/failed)
  • drain - Svuota waiting jobs
  • obliterate - Cancella completamente la coda

✅ Cleanup Automatico

POST /api/admin/queues/cleanup
  • Rimuove job completati > 24h
  • Rimuove job falliti > 7 giorni
  • Configurabile per coda singola o tutte
  • Grace period personalizzabile

✅ Gestione Job Singoli

  • Retry job falliti
  • Rimozione job specifici
  • Dettagli completi con stacktrace

✅ Monitoring Avanzato

  • Lista job per stato con paginazione
  • Filtri per coda specifica
  • Export dati in JSON

Code Gestite

Tutte le 8 code del sistema sono configurate:

  1. aiAnalysis - Analisi AI
  2. invoiceImport - Import fatture
  3. cassaInCloudSync - Sync CassaInCloud
  4. foodcostRecalculation - Ricalcolo foodcost
  5. dailyChecks - Controlli giornalieri
  6. bankStatementProcess - Elaborazione estratti conto
  7. bankTransactionImport - Import transazioni
  8. bankTransactionAutoMatch - Automatch transazioni

Accesso

Dashboard Principale

http://localhost:3000/api/admin/bull-board

Dashboard Alternativa (se la principale si blocca)

http://localhost:3000/api/admin/queue-status

API REST

Tutte le API sono documentate in docs/BULL_BOARD_ADMIN.md

Risoluzione Problemi “Blocco al Caricamento”

Il problema precedente era causato da:

  1. Mancanza di adapter corretto per Next.js
  2. Configurazione incompleta dell’UI
  3. Routing non implementato

Soluzioni Implementate:

  1. Custom Next.js Server Adapter

    • Creato adapter personalizzato compatibile con Next.js API Routes
    • Gestione corretta del routing
  2. Fallback UI Statica

    • Se l’UI dinamica non carica, usa CDN
    • HTML standalone funzionante
  3. API REST Complete

    • Anche senza UI, tutte le funzionalità sono accessibili via API
    • Dashboard JSON alternativa
  4. Error Handling Robusto

    • Messaggi di errore chiari
    • Logging dettagliato
    • Fallback automatici

Test e Verifica

Per verificare che tutto funzioni:

  1. Avvia Redis:

    brew services start redis
  2. Avvia Workers:

    npm run workers
  3. Avvia Next.js:

    npm run dev
  4. Apri Bull Board:

    http://localhost:3000/api/admin/bull-board
  5. Verifica API:

    curl http://localhost:3000/api/admin/queues/metrics

Prossimi Passi (Opzionali)

Sicurezza

  • Aggiungere autenticazione admin
  • Implementare controllo accessi basato su ruoli
  • Rate limiting sulle API admin

Monitoring

  • Setup alerting per job falliti
  • Integrazione con sistema notifiche
  • Dashboard metriche storiche

Automazione

  • Cron job per cleanup automatico
  • Auto-retry intelligente job falliti
  • Scaling automatico workers

Note Tecniche

  • Pacchetti utilizzati: @bull-board/api v6.16.2, @bull-board/ui v6.16.2
  • Nessun pacchetto aggiuntivo necessario (già tutti installati)
  • Compatibilità: Next.js 16.x, BullMQ 5.x, Redis 5.x+
  • Zero dipendenze esterne per l’UI (usa CDN come fallback)

Supporto

Per problemi o domande, consulta:

  • docs/BULL_BOARD_ADMIN.md - Guida completa
  • docs/BULLMQ_QUICKSTART.md - Quick start
  • docs/BULLMQ_GUIDE.md - Guida sviluppatore
Last updated on