忍者ブログ

ひつ(じのひよこが)プログラミングします。
お仕事や趣味で困ったこととか、何度も「あれ?どうだったかしら」と調べたりしたこととか、作ったものとか、こどものこととかを書きます
★前は週末定期更新でしたが今は不定期更新です

2024/11    10« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  »12

各種リクエスト制限がある API サービスでリクエスト制限に引っかからないようにするコツ

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

各種リクエスト制限がある API サービスでリクエスト制限に引っかからないようにするコツ

当たり前の話の列挙なのだが「うーむ」と頭を抱えたときに立ち返る場所として。

ダメだったら wait 間隔をあけてリトライ

前にも紹介した Exponential backoff を使うのは代表的手段となる。「混んでいるみたいなのでまた時間を空けてきますね作戦」である。また、リクエスト制限がある API サービスのクライアントは大体 Exponential backoff を設定するオプションが提供されているので、それについて調べてみる。

実施時間を広く取り、リクエストを集中させない

単位時間に一定数以上のリクエストが集中した場合にリクエスト制限にひっかかる。なので、一定数リクエストを送ったら数秒~数分待ってから次のリクエストを送信するようにする。「次の電車をお待ちください作戦」である。ユーザのリアルタイムな入力への対応の場合は使いにくいが、夜間ジョブ実行などではこの手段は効果的である。

一回のリクエストで大量に実行する

少なくない API サービスではリクエストの総サイズではなく、リクエスト回数でリクエスト制限をかけている。そのため、データ参照であれば必要なデータを何回かに分けず、一度に取得し、それを使いまわしたり、データ操作であれば一度に複数のデータを操作するようにリクエストを送信する。「手ぶらでも、カバンが10個でも1人は1人だろ、文句はいわせないぜ作戦」である。無論、リクエストのサイズに制限がかかっている場合もあるので、万能ではないが……

PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R