Lead Analysis - Configurazione Queue Asincrona
⚠️ Problema 502 Bad Gateway
Se ricevi 502 Bad Gateway quando generi Lead Analysis, è perché stai usando QUEUE_CONNECTION=sync che blocca il server per 1-3 minuti.
✅ Soluzione: Queue Asincrona
1. Cambia .env
Apri il file .env e modifica:
# Da:
QUEUE_CONNECTION=sync
# A:
QUEUE_CONNECTION=database2. Avvia Queue Worker
In un terminale separato, esegui:
php artisan queue:workIMPORTANTE: Questo comando deve rimanere in esecuzione. Per l'uso in produzione, configura un supervisore (es. Supervisor, systemd).
3. (Opzionale) Usa Laravel Horizon
Se hai già Horizon configurato (consigliato per produzione):
php artisan horizon🎯 Come Funziona Ora
- ✅ Clicchi "Genera Lead Analysis"
- ✅ La modale si chiude immediatamente
- ✅ Vedi notifica: "Lead Analysis in generazione. Riceverai una notifica quando sarà pronta (1-2 minuti)."
- ✅ Il job viene processato in background dal queue worker
- ✅ Dopo 1-2 minuti ricevi notifica di completamento
- ✅ La pagina si aggiorna automaticamente ogni 5 secondi (polling) mentre l'analisi è in corso
🔍 Verifica Queue Worker
Per vedere se il queue worker sta processando job:
# Lista job in coda
php artisan queue:listen --queue=default
# Lista job falliti
php artisan queue:failed🚀 Produzione: Supervisor
In produzione, usa Supervisor per mantenere il queue worker sempre attivo:
File /etc/supervisor/conf.d/saasykit-queue.conf:
[program:saasykit-queue]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/your/project/artisan queue:work --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/path/to/your/project/storage/logs/queue-worker.log
stopwaitsecs=3600Poi:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start saasykit-queue:*📊 Monitoring (con Horizon)
Se usi Horizon, puoi monitorare code, job, e metriche su:
http://your-domain.test/horizon❓ FAQ
Q: Devo riavviare il queue worker dopo deploy?
A: Sì, sempre. Usa php artisan queue:restart o riavvia Supervisor.
Q: Cosa succede se il queue worker si blocca?
A: Con Supervisor, verrà automaticamente riavviato.
Q: Posso usare Redis invece di database?
A: Sì, cambia QUEUE_CONNECTION=redis in .env e assicurati che Redis sia configurato.
✅ Fatto! Ora Lead Analysis sarà generata in background senza bloccare il browser.