[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
当たり前の話の列挙なのだが「うーむ」と頭を抱えたときに立ち返る場所として。
前にも紹介した Exponential backoff を使うのは代表的手段となる。「混んでいるみたいなのでまた時間を空けてきますね作戦」である。また、リクエスト制限がある API サービスのクライアントは大体 Exponential backoff を設定するオプションが提供されているので、それについて調べてみる。
単位時間に一定数以上のリクエストが集中した場合にリクエスト制限にひっかかる。なので、一定数リクエストを送ったら数秒~数分待ってから次のリクエストを送信するようにする。「次の電車をお待ちください作戦」である。ユーザのリアルタイムな入力への対応の場合は使いにくいが、夜間ジョブ実行などではこの手段は効果的である。
少なくない API サービスではリクエストの総サイズではなく、リクエスト回数でリクエスト制限をかけている。そのため、データ参照であれば必要なデータを何回かに分けず、一度に取得し、それを使いまわしたり、データ操作であれば一度に複数のデータを操作するようにリクエストを送信する。「手ぶらでも、カバンが10個でも1人は1人だろ、文句はいわせないぜ作戦」である。無論、リクエストのサイズに制限がかかっている場合もあるので、万能ではないが……
ただいまコメントを受けつけておりません。