Avec le développement continu des activités Internet, une concurrence élevée et de grandes quantités de traitement de données sont devenues des défis auxquels les applications Internet doivent faire face. Afin de relever ces défis, l'utilisation de files d'attente pour gérer des tâches chronophages est devenue une solution courante dans le framework Laravel. Cet article explique comment utiliser Laravel Horizon et IronMQ pour gérer les files d'attente et leurs tâches.
1. Laravel Horizon
Laravel Horizon est un outil de gestion de file d'attente officiellement fourni par Laravel. Il fournit une interface Web belle et facile à utiliser qui peut nous aider à visualiser les tâches dans la file d'attente et à gérer les tâches dans la file d'attente. en temps réel, tâches, surveillance de l'état d'exécution de la file d'attente, etc. De plus, Laravel Horizon fournit également des fonctionnalités puissantes telles que des statistiques, des tentatives automatisées, des limites de fenêtre de temps et la gestion des exceptions pour les tâches dans la file d'attente.
Utilisez Composer pour installer Laravel Horizon : Exécutez la commande suivante :
composer require laravel/horizon
Après avoir exécuté la commande ci-dessus, vous devez également publier le script Laravel Horizon dans le projet en en exécutant la commande suivante Medium :
php artisan horizon:install
Le fichier de configuration de Laravel Horizon se trouve dans config/horizon.php Vous pouvez configurer le comportement d'Horizon en modifiant ce fichier. Par exemple, définissez la connexion et le nom de la file d'attente. dans le fichier de configuration :
return [ // 要运行的进程数 'processes' => 10, // 队列连接设置 'environments' => [ 'production' => [ 'supervisor-1' => [ 'connection' => 'redis', 'queue' => ['default'], 'balance' => 'simple', 'processes' => 10, ], 'supervisor-2' => [ 'connection' => 'redis', 'queue' => ['high'], 'balance' => 'simple', 'processes' => 5, ], ], ], ]
Utilisez la commande suivante pour démarrer Laravel Horizon :
php artisan horizon
Visitez http://localhost/horizon et vous verrez l'interface Web de Laravel Horizon.
2. IronMQ
IronMQ est un service de file d'attente de messages cloud hautes performances qui peut recevoir et transmettre de grandes quantités de données via l'API. Comparé à d'autres services de file d'attente de messages traditionnels, IronMQ est plus flexible et fiable, prend en charge plusieurs langues et systèmes d'exploitation et possède des fonctionnalités évolutives.
Lors de l'enregistrement d'IronMQ, vous devez sélectionner le type de langue et l'emplacement du centre de données que vous utilisez. Après votre inscription, vous pourrez obtenir un identifiant de projet et un jeton, que nous utiliserons dans le code Laravel pour vous connecter à votre file d'attente IronMQ.
Dans le projet Laravel, utilisez Composer pour installer IronMQ :
composer require iron-io/iron_mq
Dans le projet, nous pouvons configurer IronMQ en ajoutant les paramètres suivants au fichier .env :
IRON_PROJECT_ID=IronMQ_project_id IRON_TOKEN=IronMQ_token IRON_QUEUE_NAME=default
Dans le projet Laravel, poussez la tâche vers IronMQ de la manière suivante :
IronMQ::queue('queue_name')->post($payload);
Où, $payload est le contenu de la tâche et queue_name est le nom de la file d'attente.
3. Utilisez Laravel Horizon et IronMQ pour gérer les files d'attente et les tâches
Voici le processus général d'utilisation de Laravel Horizon et IronMQ pour gérer les files d'attente et les tâches :
Conclusion
Cet article explique comment utiliser IronMQ comme service de file d'attente dans une application Laravel et le combiner avec Laravel Horizon pour gérer facilement les files d'attente et les tâches. En utilisant Laravel Horizon et IronMQ, nous pouvons effectuer des tâches asynchrones plus efficacement et détecter et résoudre plus facilement les problèmes qui surviennent lors de l'exécution des tâches.
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!