laravel queue rate limit
1.0.0
简单的laravel queue rate limit
3.* 版本仅与 Laravel 7+ 兼容。
$ composer require mxl/laravel-queue-rate-limit对于 Laravel 6 使用 2.* 版本:
$ composer require mxl/laravel-queue-rate-limit " ^2.0 "对于 Laravel 5 使用 1.* 版本:
$ composer require mxl/laravel-queue-rate-limit " ^1.0 " Laravel 5.5+ 将使用自动发现功能将MichaelLedinLaravelQueueRateLimitQueueServiceProvider::class添加到提供程序。
该软件包与旧版 Laravel 不兼容。
添加速率限制到config/queue.php :
' rateLimits ' => [
' mail ' => [ // queue name
' allows ' => 1 , // 1 job
' every ' => 5 // per 5 seconds
]
]确保在对作业进行排队时不使用sync连接。请参阅config/queue.php中的default属性。
运行队列工作者:
$ php artisan queue:work --queue default,mail然后将多个作业推送到default和mail队列:
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' default ' );
Mail:: queue (..., ' default ' );您将看到只有mail队列作业会受到速率限制,而default队列作业将正常运行。
扩展QueueServiceProvider :
<?php
namespace App Providers ;
class QueueServiceProvider extends MichaelLedin LaravelQueueRateLimit QueueServiceProvider
{
protected function registerLogger ()
{
$ this -> app -> singleton ( ' queue.logger ' , function () {
return null ;
});
}
}将其添加到config/app.php中的providers数组中:
<?php
return [
// ...
' providers ' => [
// Laravel Framework Service Providers
// ...
// Application Service Providers
// ...
App Providers QueueServiceProvider::class,
// ...
]
];有关详细信息,请参阅许可证文件。