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,
// ...
]
];
有關詳細信息,請參閱許可證文件。