Rumah >pembangunan bahagian belakang >tutorial php >Menguruskan had kadar API di Laravel melalui pendakian pekerjaan
untuk mengawal aliran pekerjaan beratur, menghalang banjir API dan gangguan perkhidmatan yang berpotensi. Mari kita meneroka pelaksanaan praktikal. Redis::throttle
memanfaatkan Redis::throttle
menyediakan mekanisme yang mantap untuk mengawal pelaksanaan pekerjaan beratur. Ini memastikan pematuhan kepada had kadar API, mengelakkan blok perkhidmatan sementara atau kekal. Struktur asas adalah seperti berikut: Redis::throttle
Redis::throttle('key-name') ->allow(10) // Allow 10 requests ->every(5) // Within a 5-second window ->then(function () { // Your job logic here });
mari kita buat sistem middleware untuk menguruskan kadar penghantaran e -mel dengan AWS SES:
middleware ini akan digunakan untuk sistem pemberitahuan e -mel kami:
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Redis; class EmailRateLimit { public function handle($job, Closure $next) { Redis::throttle('email-throttle') ->allow(10) ->every(2) ->block(2) // Wait 2 seconds if throttled ->then(function () use ($job, $next) { $next($job); }, function () use ($job) { $job->release(30); // Release after 30 seconds }); } }
Akhirnya, mengintegrasikannya ke dalam pengawal:
<?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Notification; use Illuminate\Notifications\Messages\MailMessage; use App\Http\Middleware\EmailRateLimit; class EmailDispatch extends Notification implements ShouldQueue { use Queueable; public $content; public function __construct($content) { $this->content = $content; } // ... (rest of the Notification class remains the same) ... public function middleware(): array { return [new EmailRateLimit]; } }
Pendekatan komprehensif ini memastikan aplikasi anda menghormati had kadar API sambil mengekalkan penghantaran e -mel yang cekap melalui AWS SES atau mana -mana pembekal perkhidmatan e -mel yang serasi. Penggunaan middleware dengan bersih memisahkan logik pengurangan kadar dari kod aplikasi teras anda.
Atas ialah kandungan terperinci Menguruskan had kadar API di Laravel melalui pendakian pekerjaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!