Skip to content

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:

env
# Da:
QUEUE_CONNECTION=sync

# A:
QUEUE_CONNECTION=database

2. Avvia Queue Worker

In un terminale separato, esegui:

bash
php artisan queue:work

IMPORTANTE: 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):

bash
php artisan horizon

🎯 Come Funziona Ora

  1. ✅ Clicchi "Genera Lead Analysis"
  2. ✅ La modale si chiude immediatamente
  3. ✅ Vedi notifica: "Lead Analysis in generazione. Riceverai una notifica quando sarà pronta (1-2 minuti)."
  4. ✅ Il job viene processato in background dal queue worker
  5. ✅ Dopo 1-2 minuti ricevi notifica di completamento
  6. ✅ 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:

bash
# 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:

ini
[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=3600

Poi:

bash
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.

Realizzato con ❤️ da DScom