laravel

Tutorial sulle code di Laravel

Tutorial sulle code di Laravel
La coda Laravel è una delle funzionalità più utili del framework Laravel. Questa funzione viene utilizzata per attendere attività che richiedono tempo ed eseguire attività in un secondo momento per migliorare le prestazioni e l'efficienza dell'applicazione Laravel. Questa funzionalità fornisce diversi tipi di code nei back-end, come Amazon SQS, Redis, Beanstalk, driver sincrono o database relazionale. Un driver di coda null viene utilizzato per scartare i lavori in coda. Il file di configurazione della coda è memorizzato nella posizione configurazione/coda.php. Un esempio comune di utilizzo della coda Laravel è l'invio di e-mail. Quando è necessario gestire un numero elevato di e-mail nell'applicazione Laraval, è meglio utilizzare le code Laravel per accelerare l'elaborazione. Questo tutorial mostra come utilizzare le code di Laravel per inviare un numero elevato di e-mail.

Prerequisiti

Prima di iniziare questo tutorial, completare le seguenti attività:

  1. Installa un nuovo progetto Laravel
  2. Configurare la connessione al database
  3. Imposta la configurazione per l'invio delle email (puoi controllare il tutorial sull'invio di email per inviare email tramite SMTP)

Crea tabella

Devi creare il lavori tabella nel database per memorizzare tutte le code. Eseguire il seguente comando dal terminale per creare il file di migrazione per il lavori tavolo.

$ php coda artigiano:tabella

Puoi aprire il file di migrazione dalla posizione database/migrazioni/. Il file contiene il seguente contenuto.

usa Illumina\Database\Migrations\Migration;
usa Illuminate\Database\Schema\Blueprint;
usa Illumina\Support\Facades\Schema;
class CreateJobsTable estende la migrazione

/**
* Esegui le migrazioni.
*
* @return void
*/
funzione pubblica su()

Schema::create('jobs', function (Blueprint $table)
$table->bigIncrements('id');
$table->string('queue')->index();
$table->longText('carico utile');
$table->unsignedTinyInteger('tentativi');
$table->unsignedInteger('reserved_at')->nullable();
$table->unsignedInteger('available_at');
$table->unsignedInteger('created_at');
);

/**
* Invertire le migrazioni.
*
* @return void
*/
funzione pubblica giù()

Schema::dropIfExists('jobs');

Esegui il seguente comando dal terminale per creare il lavoro tavolo.

$ php artigiano migrare

Crea classe di posta

Devi creare una classe inviabile per posta per inviare e-mail dall'applicazione Laravel. Esegui il seguente comando per creare la classe di posta denominata Invia una email nella posizione app/posta.

$ php artigiano make:mail SendEmail

Il contenuto di questa classe è mostrato di seguito. Il nome del file della vista utilizzato nel costruire() il metodo verrà creato nella parte successiva di questo tutorial.

spazio dei nomi App\Mail;
usa Illumina\Bus\Queueable;
usa Illumina\Contracts\Queue\ShouldQueue;
usa Illumina\Mail\Mailable;
usa Illumina\Queue\SerializesModels;
la classe SendEmail estende Mailable

usa Queueable, SerializesModels;
/**
* Crea una nuova istanza di messaggio.
*
* @return void
*/
funzione pubblica __construct()

//

/**
* Costruisci il messaggio.
*
* @return $this
*/
funzione pubblica build()

/* Definisce il nome della vista che verrà utilizzato per il modello di posta elettronica */
return $this->view('email');

Crea vista

Crea il file di visualizzazione denominato e-mail.lama.php con il seguente contenuto che verrà inviato come corpo dell'email.

Benvenuto in Linux Suggerimento


Impara facilmente Laravel

Crea una classe di lavoro

Esegui il seguente comando per creare una classe di lavoro. Il nome del file della classe di lavoro denominato Invio email.php verrà creato nella posizione app/Lavori.

$ php artigiano make:job SendingEmail

Il contenuto del Invio email.php è mostrato sotto. Devi impostare un indirizzo email valido all'interno del per() metodo del maniglia() funzione per verificare se il codice funziona correttamente. Imposta l'indirizzo email valido al posto di "Indirizzo e-mail del destinatario" dentro il per() metodo per verificare se la coda funziona correttamente.

spazio dei nomi App\Lavori;
usa Illumina\Bus\Queueable;
usa Illumina\Contracts\Queue\ShouldQueue;
usa Illuminate\Fondazione\Bus\Dispatchable;
usa Illumina\Queue\InteractsWithQueue;
usa Illumina\Queue\SerializesModels;
/* Aggiunti i pacchetti necessari */
usa la posta;
usa App\Mail\SendEmail;
la classe SendingEmail implementa ShouldQueue

usa Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Crea una nuova istanza di lavoro.
*
* @return void
*/
funzione pubblica __construct()

//

/**
* Esegui il lavoro.
*
* @return void
*/
handle di funzione pubblica()

/* Crea l'oggetto della classe mailable e invia email */
$email = nuovo InviaEmail();
/* Imposta un indirizzo email valido */
Mail::to('Indirizzo email del destinatario ')->send($email);

Crea controller

Esegui il seguente comando per creare un controller per gestire la coda. Quando il handleQueue() funzione del controller viene eseguita, il lavoro in coda verrà inviato e l'e-mail verrà inviata.

$ php craft make:controller SendEmailController

SendEmailController.php

spazio dei nomi App\Http\Controllers;
usa Illumina\Http\Request;
/* Aggiungi i pacchetti necessari */
usa App\Jobs\SendingEmail;
usa Carbon\Carbon;
class SendEmailController estende Controller

/**
* Utilizzo delle code di Laravel
*/
funzione pubblica handleQueue()

/* Inserisce il nuovo lavoro nella coda dei lavori */
dispatch(new SendingEmail());
/* Stampa il messaggio dopo l'invio dell'email */
echo 'L'email è stata inviata';

Aggiungi percorso

Apri il ragnatela.php file dal itinerari cartella e aggiungere il seguente percorso per eseguire il lavoro in coda utilizzando il controller.

Route::get('email', '[email protected]');

Esegui il seguente URL nel browser per verificare se il codice funziona. Apri l'indirizzo email del destinatario per verificare se è stata ricevuta una nuova email.

http://localhost:8000/emailqueue

Aggiungi ritardo

Apri il Invio email.php file di nuovo e modificare il contenuto del handleQueue() funzione per aggiungere il ritardo di cinque secondi ai lavori in coda.

spazio dei nomi App\Http\Controllers;
usa Illumina\Http\Request;
/* Aggiungi i pacchetti necessari */
usa App\Jobs\SendingEmail;
usa Carbon\Carbon;
class SendEmailController estende Controller

/**
* Utilizzo delle code di Laravel
*/
funzione pubblica handleQueue()

/* Crea un nuovo oggetto coda con 5 secondi di ritardo */
$emailJob = (new SendingEmail())->delay(Carbon::now()->addSeconds(5));
/* Inserisce il nuovo lavoro nella coda dei lavori */
spedizione($emailJob);
/* Stampa il messaggio dopo aver inviato l'email */
echo 'Email inviata dopo cinque secondi';

Ancora una volta, esegui il seguente URL nel browser per verificare se il codice funziona. Qui, l'e-mail verrà inviata dopo cinque secondi, utilizzando il metodo delay() di cinque secondi.

http://localhost:8000/emailqueue

Controlla la posta in arrivo dell'indirizzo email del destinatario per scoprire se è stata ricevuta una nuova email dopo 5 secondi. Se il lavoro in coda funziona correttamente, verrà ricevuta un'e-mail con il seguente contenuto.

Conclusione

Questo tutorial mostra un utilizzo molto semplice della coda di Laravel. Puoi utilizzare le code Laravel per vari scopi, in base ai requisiti della tua applicazione. Spero che questo tutorial abbia aiutato i lettori a comprendere meglio i concetti di base delle code di Laravel.

Come utilizzare Xdotool per stimolare i clic del mouse e le sequenze di tasti in Linux
Xdotool è uno strumento da riga di comando gratuito e open source per simulare i clic del mouse e le sequenze di tasti. Questo articolo tratterà una b...
I 5 migliori mouse per computer ergonomici per Linux
L'uso prolungato del computer provoca dolore al polso o alle dita?? Soffri di rigidità articolare e devi continuamente stringerti la mano? Senti un do...
Come modificare le impostazioni del mouse e del touchpad utilizzando Xinput in Linux
La maggior parte delle distribuzioni Linux viene fornita con la libreria "libinput" per impostazione predefinita per gestire gli eventi di input su un...