Settimana super questa per il comparto “guide Laravel”: siamo ritornati in ufficio parecchio carichi avendo terminato i nostri corsi in trasferta e ci siamo subito rimessi a produrre le guide Laravel che tanto amiamo realizzare e – speriamo – voi leggere :). Oggi facciamo un approfondimento su Job e Queue.

Definizione Job e Queue con Laravel

Per spiegare al meglio questo concetto, dobbiamo inevitabilmente parlare delle queues. Le code di elaborazione supportate da Laravel di default sono ‘sync’,’ database’, ‘beanstalkd’, ‘sqs’, ‘redis’ e ‘null’ e sono gestite in ‘config/queue.php’. La tipologia attiva al momento dell’installazione di una nuova copia di Laravel è sync.

Le code di elaborazione in Laravel vengono implementate per rinviare i task impegnativi a livello computazionale (Jobs) o che richiedono tempo (es: invio mail) a dei meccanismi paralleli, permettendo un’esperienza più fluida nell’uso dell’applicazione.

Creazione del Job

Riprendiamo il nostro esempio e creiamo una classe Job per inviare una mail agli amministratori dell’applicazione, una mail in grado di indicare che un post è stato aggiornato.

1) Creiamo un job NotifyAdmins
php artisan make:job NotifyAdmins
2) Nel nostro PostUpdateListener lanciamo questo Job appena creato passandogli il post da processare
3) Nella classe job impostiamo nel costruttore il post ed eseguiamo il lavoro nel metodo handle()

Queue

Per sfruttare la gestione delle code di Laravel:

 1) Impostare nel file .env la costante QUEUE_CONNECTION=database
2) Per la gestione di una coda database, Laravel richiede una tabella jobs. La migration della tabella può essere effettuata con il comando Artisan
php artisan queue:table
3) Far partire il processo che esegue in background i job in coda
php artisan queue:work

LaraMind: corsi Laravel e non solo

LaraMind è la scuola italiana in ottica Full Stack: corsi per privati e aziende. Non solo corsi a catalogo, LaraMind è in grado di fornire soluzioni customizzate in aula e da remoto a tutte le fasce orarie della giornata.

LaraMind non è solo formazione, è anche consulenza: scopri il nostro servizio di code review e di consulenza a ore!