これまでのところ、私は200を超えるGoogleアナリティクスアカウントを利用して情報を取得しています。限られた数のアカウントでソリューションをテストしました(わずか10)。 すべてのアカウントIDをロジックに入れたら、クォータリミットの100秒あたりのリクエスト数がになります。GoogleアナリティクスAPI |クォータ制限を100秒あたり100レコート処理する
foreach (var viewID in _viewIds)
{
foreach (var dateRange in dateRanges)
{
tTaskList.Add(Task.Run(async() =>
{
try
{ var tReports = await gc.PostAsyncTask(url, reportRequest);
foreach (var report in tReports.reports)
{
if (report != null)
{
//All report logic here
//(...)
bool hasNextPage = false;
do
{
//All pagination logic here
//(...)
}while(hasNextPage);
}
}
}
catch (Exception ex)
{
//Write in Log
var ex_message = Common.Utils.GetExceptionMessage(ex);
Logger.WriteConsoleLog(ex_message.MessageString, (int)Logger.Logs.ERROR, APIName, RequestID);
}
})
); //end add task
}
}
リクエスト数を制御するにはどうすればよいですか?これらのエラーを避けるには?
私はこれらのキューソリューションとexplonential backoffを使用すると、これらのエラーを回避することができました。私はそれらを大幅に減らすと言うが、まだ1つまたは別のエラーがある、私はそれらをキャッチし、指数バックオフを行い、再度やり直すことができます。 – bmvr
それは実際に私も同様に私は1つだけ私はそれを再試行して取得する場合。私はとても好きではなかったので、私はそれをさらに減らすためにQueの考えを加えました。 Googleでは、実際にバックオフを導入することを実際に推奨しています。デベロッパーコンソールのレポートにエラーが表示されているような場合は、それだけで依存するキューを追加する必要はありません。 – DaImTo