Maison > cadre php > Laravel > le corps du texte

Comment utiliser la file d'attente Laravel

WBOY
Libérer: 2023-05-26 18:38:07
original
2642 Les gens l'ont consulté

Avec le développement continu de l'industrie Internet, nos sites Web deviennent de plus en plus complexes et le nombre de visites augmente également. Dans le cas d'une concurrence élevée, le traitement d'un grand nombre de tâches chronophages est une tâche très difficile, ce qui entraînera le blocage et le blocage de notre entreprise. Afin de résoudre ce problème, Laravel fournit une fonction de file d'attente qui peut être utilisée pour gérer certaines tâches asynchrones et reportables afin que les utilisateurs ne se sentent pas bloqués. Ensuite, apprenons à utiliser la file d'attente Laravel.

1. Installer la file d'attente

1. Installer le package de file d'attente

Dans Laravel, la file d'attente est placée dans le package de travail de file d'attente Laravel Nous pouvons utiliser Composer pour installer le package :

composer require illuminate/queue

2. . Ajouter des fournisseurs de files d'attente

Laravel prend en charge plusieurs backends de files d'attente, notamment les bases de données, Redis, Beanstalkd, etc. Nous devons configurer le fournisseur de file d'attente dans config/queue.php. Par exemple, nous pouvons utiliser le fournisseur de file d'attente Redis :

'connections' => [

'redis' => [
    'driver' => 'redis',
    'connection' => 'default',
    'queue' => 'default',
    'retry_after' => 90,
    'block_for' => null,
],
Copier après la connexion

],

2. Créer des tâches

La file d'attente est conçue pour gérer des tâches de longue durée, cela peut être n'importe quelle tâche ou commande. Nous pouvons utiliser la ligne de commande pour générer une nouvelle tâche de file d'attente :

php artisan make:job SendEmail

La classe de tâches de file d'attente générée est placée dans le répertoire app/Jobs. La classe de tâches SendEmail générée manuellement est une classe de base. Comme ceci :

namespace AppJobs;

utilisez IlluminateBusQueueable;
utilisez IlluminateContractsQueueShouldQueue;
utilisez IlluminateFoundationBusDispatchable;
utilisez IlluminateQueueInteractsWithQueue;
utilisez IlluminateQueue SerializesModels;

class SendEmail implémente ShouldQueue
{

use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

/**
 * Create a new job instance.
 *
 * @return void
 */
public function __construct()
{
    //
}

/**
 * Execute the job.
 *
 * @return void
 */
public function handle()
{
    //
}
Copier après la connexion

}

us La logique d'implémentation spécifique de la tâche peut être écrite dans la méthode handle().

3. Pousser les tâches vers la file d'attente

Dans Laravel, nous pouvons utiliser la méthode statique $dispatch() pour ajouter des tâches à la file d'attente. Nous pouvons utiliser cette méthode dans un contrôleur, une route ou n'importe où ailleurs comme suit :

use AppJobsSendEmail ;

SendEmail::dispatch();

Nous pouvons également spécifier en utilisant les méthodes delay() et onQueue() de la file d'attente ; nom.

Par exemple, placez la tâche dans la file d'attente nommée « emails » et traitez-la après 10 secondes :

SendEmail::dispatch()->onQueue('emails')->delay(now()-> ; addSeconds(10));

4. Exécuter la file d'attente

Nous avons poussé la tâche vers la file d'attente, nous devons maintenant exécuter la file d'attente et traiter la tâche. Dans Laravel, nous pouvons utiliser la commande Artisan pour démarrer le processeur de file d'attente :

php artisan queue:work

Par défaut, le processeur de file d'attente utilisera le fournisseur de file d'attente nommé "default". Nous pouvons définir la file d'attente pour le traitement du processeur en utilisant l'option "--queue". Par exemple, pour travailler avec la file d'attente de courrier :

php artisan queue:work --queue=emails

Si vous souhaitez utiliser tous les processeurs disponibles pour traiter la file d'attente à tour de rôle, vous pouvez utiliser l'option "--daemon". Cela garantit que même si un processeur tombe en panne, il ne cessera pas de fonctionner.

php artisan queue:work --daemon

Il existe de nombreuses autres options pour les processeurs de file d'attente. Vous pouvez utiliser la commande php artisan queue:work --help pour afficher toutes les options et informations associées.

5. Résumé

Voici les étapes d'utilisation de la file d'attente laravel. En utilisant la file d'attente laravel, nous pouvons facilement gérer un grand nombre de tâches fastidieuses, améliorant ainsi l'efficacité et la vitesse de réponse de l'application. Si vous souhaitez approfondir plus de détails et d'options sur les files d'attente, consultez la documentation officielle de Laravel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal