私は Go lang を初めて使用し、抑制された GCP API 呼び出しを実装しようとしています。つまり、アプリが行う 1 秒あたりの API 呼び出しの数を制限して、Google が私をブロックしないようにします。
ここに例示されているワーカープールのパターンに従っています。
リンクされた例に似た方法のデザインは次のようになります。
- 実行する API 呼び出しの総数と同じ容量の 2 つのチャネル (ジョブ、結果) を作成します。
- 特定のサイズ (たとえば 10 ワーカー) のワーカー プールを作成する
- 各ワーカーは、API 呼び出しを行い、応答を結果チャネルに保存しながらジョブ チャネルを通過します。待機時間は 1 秒です。
私の質問は次のとおりです。
- それぞれ 1 秒の待機期間を持つ 10 個のワーカーは、アプリが 1 秒あたり約 10 回の API 呼び出しを行うことを意味することを正しく理解していますか?
- 10 個のワーカーが互いに足を踏み入れないように通信するにはどうすればよいでしょうか。つまり、2 つのワーカーが同じ GCS パスを照会することはありません。
そしてもちろん、最終的な質問: ワーカー プールを使用するのはやり過ぎですか?
ありがとうございました!