laravel

Tutoriel sur les files d'attente Laravel

Tutoriel sur les files d'attente Laravel
La file d'attente Laravel est l'une des fonctionnalités les plus utiles du framework Laravel. Cette fonctionnalité est utilisée pour attendre les tâches chronophages et effectuer des tâches plus tard pour améliorer les performances et l'efficacité de l'application Laravel. Cette fonctionnalité fournit différents types de files d'attente dans les back-ends, tels qu'Amazon SQS, Redis, Beanstalk, pilote synchrone ou base de données relationnelle. Un pilote de file d'attente nul est utilisé pour supprimer les travaux en file d'attente. Le fichier de configuration de la file d'attente est stocké à l'emplacement config/file d'attente.php. Un exemple courant d'utilisation de la file d'attente Laravel consiste à envoyer des e-mails. Lorsqu'il est nécessaire de traiter un grand nombre d'emails dans l'application Laraval, alors il est préférable d'utiliser les files d'attente Laravel pour accélérer le traitement. Ce tutoriel montre comment utiliser les files d'attente Laravel pour envoyer un grand nombre d'e-mails.

Conditions préalables

Avant de commencer ce didacticiel, commencez par effectuer les tâches suivantes :

  1. Installer un nouveau projet Laravel
  2. Configurer la connexion à la base de données
  3. Configurer la configuration pour l'envoi des e-mails (Vous pouvez consulter le didacticiel d'envoi d'e-mails pour envoyer des e-mails via SMTP)

Créer un tableau

Vous devez créer le emplois table dans la base de données pour stocker toutes les files d'attente. Exécutez la commande suivante depuis le terminal pour créer le fichier de migration pour le emplois tableau.

$ file d'attente d'artisans php:table

Vous pouvez ouvrir le fichier de migration à partir de l'emplacement base de données/migrations/. Le fichier contient le contenu suivant.

utilisez Illuminate\Database\Migrations\Migration ;
utilisez Illuminate\Database\Schema\Blueprint ;
utilisez Illuminate\Support\Facades\Schema ;
la classe CreateJobsTable étend la migration

/**
* Exécuter les migrations.
*
* @retour nul
*/
fonction publique up()

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

/**
* Inverser les migrations.
*
* @retour nul
*/
fonction publique down()

Schema::dropIfExists('jobs');

Exécutez la commande suivante depuis le terminal pour créer le travail tableau.

$ php artisan migrer

Créer une classe de courrier

Vous devez créer une classe mailable pour envoyer des emails depuis l'application Laravel. Exécutez la commande suivante pour créer la classe de courrier nommée EnvoyerEmail dans l'emplacement application/courrier.

$ php artisan make:mail SendEmail

Le contenu de cette classe est indiqué ci-dessous. Le nom de fichier de vue utilisé dans le construire() méthode sera créée dans la prochaine partie de ce tutoriel.

espace de noms App\Mail ;
utilisez Illuminate\Bus\Queueable ;
utilisez Illuminate\Contracts\Queue\ShouldQueue ;
utilisez Illuminate\Mail\Mailable ;
utilisez Illuminate\Queue\SerializesModels ;
la classe SendEmail étend Mailable

utiliser Queueable, SerializesModels;
/**
* Créer une nouvelle instance de message.
*
* @retour nul
*/
fonction publique __construct()

//

/**
* Construire le message.
*
* @return $this
*/
fonction publique build()

/* Définir le nom de la vue qui sera utilisé pour le modèle d'e-mail */
return $this->view('email');

Créer une vue

Créez le fichier de vue nommé e-mail.lame.php avec le contenu suivant qui sera envoyé comme corps de l'e-mail.

Bienvenue sur Linux Hint


Apprendre Laravel facilement

Créer une classe d'emploi

Exécutez la commande suivante pour créer une classe de travail. Le nom de fichier de la classe d'emplois nommé EnvoiEmail.php sera créé à l'emplacement application/Emplois.

$ php artisan make:job EnvoiEmail

Le contenu de la EnvoiEmail.php est montré ci-dessous. Vous devez définir une adresse e-mail valide dans le à() méthode de la manipuler() fonction pour tester si le code fonctionne correctement. Définissez l'adresse e-mail valide à la place de 'Adresse e-mail du destinataire' à l'intérieur de à() méthode pour vérifier si la file d'attente fonctionne correctement.

espace de noms App\Jobs ;
utilisez Illuminate\Bus\Queueable ;
utilisez Illuminate\Contracts\Queue\ShouldQueue ;
utilisez Illuminate\Foundation\Bus\Dispatchable ;
utilisez Illuminate\Queue\InteractsWithQueue ;
utilisez Illuminate\Queue\SerializesModels ;
/* Ajout des packages nécessaires */
utiliser la messagerie ;
utilisez App\Mail\SendEmail ;
la classe SendingEmail implémente ShouldQueue

utilisez Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Créer une nouvelle instance de travail.
*
* @retour nul
*/
fonction publique __construct()

//

/**
* Exécuter le travail.
*
* @retour nul
*/
poignée de fonction publique()

/* Créer l'objet de la classe mailable et envoyer un email */
$email = new SendEmail();
/* Définir une adresse e-mail valide */
Mail::to('Adresse e-mail du destinataire ')->send($email);

Créer un contrôleur

Exécutez la commande suivante pour créer un contrôleur pour gérer la file d'attente. Quand le handleQueue() fonction du contrôleur est exécutée, le travail de file d'attente sera poussé et l'e-mail enverra.

$ php artisan make:controller SendEmailController

SendEmailController.php

espace de noms App\Http\Controllers ;
utilisez Illuminate\Http\Request ;
/* Ajouter les packages nécessaires */
utilisez App\Jobs\SendingEmail ;
utiliser Carbone\Carbone ;
la classe SendEmailController étend le contrôleur

/**
* Utilisation des files d'attente Laravel
*/
fonction publique handleQueue()

/* Pousser le nouveau travail dans la file d'attente des travaux */
dispatch(new SendingEmail());
/* Imprimer le message après l'envoi de l'e-mail */
echo 'L'e-mail a été envoyé';

Ajouter un itinéraire

Ouvrez le la toile.php fichier de la itinéraires dossier et ajoutez la route suivante pour exécuter le travail de file d'attente à l'aide du contrôleur.

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

Exécutez l'URL suivante dans le navigateur pour vérifier si le code fonctionne. Ouvrez l'adresse e-mail du destinataire pour vérifier si un nouvel e-mail a été reçu.

http://localhost:8000/emailqueue

Ajouter un délai

Ouvrez le EnvoiEmail.php à nouveau et modifier le contenu du handleQueue() fonction pour ajouter le délai de cinq secondes aux tâches de la file d'attente.

espace de noms App\Http\Controllers ;
utilisez Illuminate\Http\Request ;
/* Ajouter les packages nécessaires */
utilisez App\Jobs\SendingEmail ;
utiliser Carbone\Carbone ;
la classe SendEmailController étend le contrôleur

/**
* Utilisation des files d'attente Laravel
*/
fonction publique handleQueue()

/* Créer un nouvel objet file d'attente avec un délai de 5 secondes */
$emailJob = (new SendingEmail())->delay(Carbon::now()->addSeconds(5));
/* Pousser le nouveau travail dans la file d'attente des travaux */
dispatch($emailJob);
/* Imprimer le message après l'envoi de l'e-mail */
echo 'Email envoyé après cinq secondes';

Encore une fois, exécutez l'URL suivante dans le navigateur pour vérifier si le code fonctionne. Ici, l'e-mail sera envoyé après cinq secondes, en utilisant la méthode delay() de cinq secondes.

http://localhost:8000/emailqueue

Vérifiez la boîte de réception de l'adresse e-mail du destinataire pour savoir si un nouvel e-mail a été reçu après 5 secondes. Un e-mail avec le contenu suivant sera reçu si le travail de file d'attente fonctionne correctement.

Conclusion

Ce tutoriel montre une utilisation très simple de la file d'attente Laravel. Vous pouvez utiliser les files d'attente Laravel à diverses fins, en fonction des exigences de votre application. J'espère que ce tutoriel a aidé les lecteurs à mieux comprendre les concepts de base des files d'attente Laravel.

Le bouton central de la souris ne fonctionne pas sous Windows 10
le bouton central de la souris vous aide à faire défiler de longues pages Web et des écrans contenant beaucoup de données. Si cela s'arrête, et bien v...
Comment changer les boutons gauche et droit de la souris sur un PC Windows 10
Il est tout à fait normal que tous les appareils de souris d'ordinateur soient conçus de manière ergonomique pour les droitiers. Mais il existe des so...
Émulez les clics de souris en survolant à l'aide de la souris sans clic dans Windows 10
L'utilisation d'une souris ou d'un clavier dans la mauvaise posture d'une utilisation excessive peut entraîner de nombreux problèmes de santé, notamme...