laravel queue rate limit
1.0.0
単純なlaravel queue rate limit
3.* バージョンは Laravel 7 以降とのみ互換性があります。
$ composer require mxl/laravel-queue-rate-limitLaravel 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,
// ...
]
];詳細については、LICENSE ファイルを参照してください。