laravel queue rate limit sederhana
Versi 3.* hanya kompatibel dengan Laravel 7+.
$ composer require mxl/laravel-queue-rate-limit
Untuk Laravel 6 gunakan versi 2.*:
$ composer require mxl/laravel-queue-rate-limit " ^2.0 "
Untuk Laravel 5 gunakan versi 1.*:
$ composer require mxl/laravel-queue-rate-limit " ^1.0 "
Laravel 5.5+ akan menggunakan fitur penemuan otomatis untuk menambahkan MichaelLedinLaravelQueueRateLimitQueueServiceProvider::class
ke penyedia.
Paket ini tidak kompatibel dengan versi Laravel yang lebih lama.
Tambahkan batas kecepatan ke config/queue.php
:
' rateLimits ' => [
' mail ' => [ // queue name
' allows ' => 1 , // 1 job
' every ' => 5 // per 5 seconds
]
]
Pastikan Anda tidak menggunakan koneksi sync
saat mengantri pekerjaan. Lihat properti default
di config/queue.php
.
Jalankan pekerja antrian:
$ php artisan queue:work --queue default,mail
Kemudian dorong beberapa pekerjaan ke default
dan antrean mail
:
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' mail ' );
Mail:: queue (..., ' default ' );
Mail:: queue (..., ' default ' );
Anda akan melihat bahwa hanya tugas antrian mail
yang akan dibatasi tarifnya sementara tugas antrian default
akan berjalan normal.
Perluas QueueServiceProvider
:
<?php
namespace App Providers ;
class QueueServiceProvider extends MichaelLedin LaravelQueueRateLimit QueueServiceProvider
{
protected function registerLogger ()
{
$ this -> app -> singleton ( ' queue.logger ' , function () {
return null ;
});
}
}
Tambahkan ke array providers
di config/app.php
:
<?php
return [
// ...
' providers ' => [
// Laravel Framework Service Providers
// ...
// Application Service Providers
// ...
App Providers QueueServiceProvider::class,
// ...
]
];
Lihat file LISENSI untuk detailnya.