「1リクエスト/秒/ユーザーごと」とは思いません。私の場合、またはGoogleのURL短縮サービスの場合、docに書かれていることは100%正しいです。(参考:「OAuth」ではなく「パブリックAPIアクセス」を使用しています)
私はほとんど同じ問題を抱えていますが、私にとっては、「いくつかの URL で一定期間このエラーが発生する」可能性が高くなります。どういう意味ですか?読み続けてください。
これらは私が見つけたものです:
- Google URL Shorterを同時に使用するために10個のスレッドを使用できますが、常にではありません...
- 処理中、1 つのスレッドで 1 つの URL が失敗しても、他のスレッドは他の URL を取得できます。
- URLが失敗し、後で同じURLを再試行した場合(他のプロセスが実行されていなくても、一定期間は機能しません。さらに、「&test = 1」などの文字列を追加しようとしましたが、役に立ちませんが、別の URL に変更すると機能します。
したがって、Google のサーバーには各 URL のキャッシュが存在する可能性があります。URL が失敗した場合、キャッシュが解放されるまでしばらく待つ必要があります。
したがって、私の問題を解決するには、次のような不気味なコードを書く必要があります。
- 失敗した場合、その特定のスレッドは 1 分間スリープします (はい 1 分間)。
- 10回試行し続けます(完全に、失敗したURLの場合は10分になる可能性があります)
ただし、固定スレッド プール サイズ 10 で ExecutorService を使用しているため、この不気味なコードは私の場合には問題ありません。したがって、失敗した場合でも、他の人は短縮 URL を取得できます。それは問題を解決します...少なくとも私にとっては。