laravel queue rate limit
Las versiones 3.* son compatibles solo con Laravel 7+.
$ composer require mxl/laravel-queue-rate-limit
Para Laravel 6 use las versiones 2.*:
$ composer require mxl/laravel-queue-rate-limit " ^2.0 "
Para Laravel 5 use las versiones 1.*:
$ composer require mxl/laravel-queue-rate-limit " ^1.0 "
Laravel 5.5+ utilizará la función de descubrimiento automático para agregar MichaelLedinLaravelQueueRateLimitQueueServiceProvider::class
a los proveedores.
Este paquete no es compatible con versiones anteriores de Laravel.
Agregue límites de velocidad a config/queue.php
:
' rateLimits ' => [
' mail ' => [ // queue name
' allows ' => 1 , // 1 job
' every ' => 5 // per 5 seconds
]
]
Asegúrese de no utilizar una conexión sync
cuando ponga trabajos en cola. Vea la propiedad default
en config/queue.php
.
Ejecutar trabajador de cola:
$ php artisan queue:work --queue default,mail
Luego envíe varios trabajos a las colas default
y mail
:
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' default ' );
Mail:: queue (..., ' default ' );
Verá que solo los trabajos de la cola mail
tendrán una velocidad limitada, mientras que los trabajos de la cola default
se ejecutarán normalmente.
Extender QueueServiceProvider
:
<?php
namespace App Providers ;
class QueueServiceProvider extends MichaelLedin LaravelQueueRateLimit QueueServiceProvider
{
protected function registerLogger ()
{
$ this -> app -> singleton ( ' queue.logger ' , function () {
return null ;
});
}
}
Agréguelo a la matriz providers
en config/app.php
:
<?php
return [
// ...
' providers ' => [
// Laravel Framework Service Providers
// ...
// Application Service Providers
// ...
App Providers QueueServiceProvider::class,
// ...
]
];
Consulte el archivo de LICENCIA para obtener más detalles.