ホームページ > バックエンド開発 > PHPチュートリアル > ジョブスロットリングを通じて、LaravelのAPIレート制限の管理

ジョブスロットリングを通じて、LaravelのAPIレート制限の管理

James Robert Taylor
リリース: 2025-03-06 01:44:08
オリジナル
324 人が閲覧しました

Managing API Rate Limits in Laravel Through Job Throttling

AWS SESなどの外部サービスと電子メール配信のために統合する場合、

APIレート制限を効率的に管理することが重要です。 Laravelは、を使用して合理化されたソリューションを提供して、キューに登録されたジョブの流れを制御し、APIの洪水と潜在的なサービスの中断を防ぎます。 実用的な実装を調べてみましょう。Redis::throttle

レバレッジ Redis::throttle laravel's

は、キューになったジョブの実行を調節するための堅牢なメカニズムを提供します。これにより、一時的または永続的なサービスブロックを回避して、APIレートの制限を順守します。 基本構造は次のとおりです

Redis::throttle

実用的な例:AWS SES電子メール配信Redis::throttle('key-name') ->allow(10) // Allow 10 requests ->every(5) // Within a 5-second window ->then(function () { // Your job logic here }); AWS SESを使用して電子メール送信レートを管理するためのミドルウェアシステムを作成しましょう:

このミドルウェアは、メール通知システムに適用されます:

最後に、これをコントローラーに統合します:
<?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
            });
    }
}
ログイン後にコピー

この包括的なアプローチにより、AWS SESまたは互換性のある電子メールサービスプロバイダーを介して効率的な電子メール配信を維持しながら、アプリケーションがAPIレートの制限を尊重します。 ミドルウェアの使用は、レート制限ロジックをコアアプリケーションコードからきれいに分離します。

以上がジョブスロットリングを通じて、LaravelのAPIレート制限の管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート