laravel queue rate limit
Les versions 3.* sont compatibles uniquement avec Laravel 7+.
$ composer require mxl/laravel-queue-rate-limit
Pour Laravel 6, utilisez les versions 2.* :
$ composer require mxl/laravel-queue-rate-limit " ^2.0 "
Pour Laravel 5, utilisez les versions 1.* :
$ composer require mxl/laravel-queue-rate-limit " ^1.0 "
Laravel 5.5+ utilisera la fonctionnalité de découverte automatique pour ajouter MichaelLedinLaravelQueueRateLimitQueueServiceProvider::class
aux fournisseurs.
Ce package n'est pas compatible avec les anciennes versions de Laravel.
Ajoutez des limites de débit à config/queue.php
:
' rateLimits ' => [
' mail ' => [ // queue name
' allows ' => 1 , // 1 job
' every ' => 5 // per 5 seconds
]
]
Assurez-vous de ne pas utiliser de connexion sync
lors de la mise en file d'attente des tâches. Voir la propriété default
dans config/queue.php
.
Exécuter le gestionnaire de file d'attente :
$ php artisan queue:work --queue default,mail
Ensuite, transférez plusieurs tâches vers les files d'attente default
et mail
:
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' default ' );
Mail:: queue (..., ' default ' );
Vous verrez que seules les tâches de la file d'attente mail
seront limitées en débit, tandis que les tâches de la file d'attente default
s'exécuteront normalement.
Étendre QueueServiceProvider
:
<?php
namespace App Providers ;
class QueueServiceProvider extends MichaelLedin LaravelQueueRateLimit QueueServiceProvider
{
protected function registerLogger ()
{
$ this -> app -> singleton ( ' queue.logger ' , function () {
return null ;
});
}
}
Ajoutez-le au tableau providers
dans config/app.php
:
<?php
return [
// ...
' providers ' => [
// Laravel Framework Service Providers
// ...
// Application Service Providers
// ...
App Providers QueueServiceProvider::class,
// ...
]
];
Voir le fichier LICENSE pour plus de détails.