ホームページ  >  に質問  >  本文

実稼働環境でのみ電流制限に Redis を使用する Laravel の実践

######背景###

デフォルトでは、Laravel はレート制限 (スロットル) 用に 2 つのミドルウェアを提供します。 リーリー

ドキュメントに記載されているように、キャッシュ ドライバーとして Redis を使用している場合は、

Kernel.php

のマッピングを次のように変更できます。 リーリー ###質問###

問題は、上記が動的ではなく、環境に依存することです。たとえば、

staging および production

環境では Redis を使用していますが、

local

および

development 環境では Redis を使用していません。 ###可能な解決策### 次のような明らかに汚い解決策があります (Kernel.php): リーリー Kernel

コンストラクターをオーバーライドせずにこれを実現する「標準的な」方法はありますか?基本的に、環境が

production

に設定されているかどうか (または、デフォルトのキャッシュ ストレージが

redis に設定されているかどうか) に基づいて、アプリケーションが関連するミドルウェアを動的に選択するようにしたいと考えています。

更新

上記の解決策は、アプリケーションが起動する前にカーネルにアクセスされるため機能しません。そのため、現時点では環境が利用できません。私が現在検討しているもう 1 つの解決策は、基本の ThrottleRequests クラスを拡張して、関連するクラスが動的に呼び出されるようにすることです。

P粉541565322P粉541565322306日前401

全員に返信(1)返信します

  • P粉043432210

    P粉0434322102024-01-11 16:27:49

    多くの調査とテストを行った結果、RouteServiceProviderthrottle ミドルウェアを動的に設定することが最良の解決策であるという結論に達しました。コードは次のとおりです。

    リーリー

    返事
    0
  • キャンセル返事