【すろっとりんぐ】
スロットリング とは?
最終更新:
💡 あえてブレーキをかけて、システムを守る技術
処理の実行頻度を意図的に制限する仕組みのこと。サーバーやAPIの過負荷を防ぐために使われる。
📌 このページのポイント
わざと遅くするのは、なぜ?
処理の頻度や量を調整して、過負荷を抑えるためだよ。例えばAPIで一定時間内の利用回数を制限する。どの回数まで扱えるかは、システムの能力や一回の処理の重さによるんだ
制限を超えるとどうなる?
フロントエンドでも使う?
スクロールに合わせて重い処理を毎回実行するときなどに使うよ。Lodashのthrottleなら、指定した時間内の関数の実行回数を抑えられる。スクロールイベント自体の発生を止めるのではなく、その後の処理を調整するんだ
デバウンスとは何が違う?
スロットリングは入力が続く間も実行頻度を抑えつつ処理する。デバウンスは、典型的には最後の入力から一定時間が過ぎるまで待つよ。Lodashでは最初や最後に実行するかを設定できるので、名前だけで細かい動作を決め付けないようにするんだ
APIで429が返ったら?
Retry-Afterがあれば、その待ち時間を確認するよ。値は秒数か日時で、必ず付くわけではない。サービスの仕様に従って送信頻度を下げ、再試行を無制限に繰り返さないようにするんだ
まとめ:ざっくりこれだけ覚えればOK!
「スロットリング」って出てきたら「処理の実行頻度を意図的に制限してシステムを安定させる仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Throttling」 = 流量や出力を絞ること
💬 スロットルで流量や出力を調整するイメージだよ。ソフトウェアでは処理の頻度や量を調整する意味で使うんだ