laravel queue rate limit
As versões 3.* são compatíveis apenas com Laravel 7+.
$ composer require mxl/laravel-queue-rate-limitPara Laravel 6 use versões 2.*:
$ composer require mxl/laravel-queue-rate-limit " ^2.0 "Para Laravel 5 use versões 1.*:
$ composer require mxl/laravel-queue-rate-limit " ^1.0 " Laravel 5.5+ usará o recurso de descoberta automática para adicionar MichaelLedinLaravelQueueRateLimitQueueServiceProvider::class aos provedores.
Este pacote não é compatível com versões mais antigas do Laravel.
Adicione limites de taxa a config/queue.php :
' rateLimits ' => [
' mail ' => [ // queue name
' allows ' => 1 , // 1 job
' every ' => 5 // per 5 seconds
]
] Certifique-se de não usar a conexão sync ao enfileirar trabalhos. Veja a propriedade default em config/queue.php .
Execute o trabalhador da fila:
$ php artisan queue:work --queue default,mail Em seguida, envie vários trabalhos para as filas default e mail :
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' default ' );
Mail:: queue (..., ' default ' ); Você verá que apenas os trabalhos de fila mail terão taxa limitada, enquanto os trabalhos de fila default serão executados normalmente.
Estenda QueueServiceProvider :
<?php
namespace App Providers ;
class QueueServiceProvider extends MichaelLedin LaravelQueueRateLimit QueueServiceProvider
{
protected function registerLogger ()
{
$ this -> app -> singleton ( ' queue.logger ' , function () {
return null ;
});
}
} Adicione-o ao array providers em config/app.php :
<?php
return [
// ...
' providers ' => [
// Laravel Framework Service Providers
// ...
// Application Service Providers
// ...
App Providers QueueServiceProvider::class,
// ...
]
];Consulte o arquivo LICENSE para obter detalhes.