問題がどこにあるのか完全に理解したかどうかはわかりません。から
後のリクエストの中には、実際には前のリクエストよりも前に処理できる場合があります。
現在は満足できないが、まもなく処理される可能性のあるリクエストのバッファリングについて懸念していると思います。
次のようなリクエストを受け取りました
{ Amazon, X }
そして(たとえば)Xスロットリングのために、現在その要求を満足させることはできません。
私の最初の質問は、リクエストが独立していることです。つまり、Amazonリクエストをすぐに処理して、Xリクエストをキューに入れることができますか?もしそうなら、各サーバブの単純なFIFOキューが確実にその仕事をします。おそらく、キューの最大サイズが必要になります(HTTP要求がタイムアウトした場合、何時間も待つことはできません)。
Xリクエストを発行できるようになるまでAmazonリクエストの発行を延期することを念頭に置いている場合は、事態はさらに複雑になります。事実上、会議のスケジュールに問題があると思います。AmazonとXの両方が空いているときにスロットを見つける必要があります。したがって、ある種のキューのリストを持つことができます。各キューは、サービスのその時間単位で要求が満たされるためのものです。
Amazon(3 per sec)
09:05:31 - request A, B, C
09:05:32 - request D, E, F
09:05:33 - request G - - <=== slots available
--- <=== times and slots available
X (2 per min)
09:05 - request M, N
09:06 - request O <=== slot available
ここで、{Amazon、X}には09:06に利用可能なスロットがあります
Amazon(3 per sec)
09:05:31 - request A, B, C
09:05:32 - request D, E, F
09:05:33 - request G - - <=== slots available
--- <=== times and slots available
09:06:01 - request P
X (2 per min)
09:05 - request M, N
09:06 - request O, P
個人的には、もっと簡単なことから始めます。いずれかのサービス制限に達したためにリクエストを今すぐ満たすことができない場合は、リクエストを拒否するだけです。