in src/Cli/func/Arm/ArmClient.cs [34:83]
public static async Task<HttpResponseMessage> HttpInvoke(string method, Uri uri, string accessToken, object objectPayload = null, int retryCount = 3)
{
var socketTrials = 10;
var retries = retryCount;
while (true)
{
try
{
var response = await HttpInvoke(uri, method, accessToken, objectPayload);
if (!response.IsSuccessStatusCode && retryCount > 0)
{
while (retries > 0)
{
response = await HttpInvoke(uri, method, accessToken, objectPayload);
if (response.IsSuccessStatusCode)
{
return response;
}
else
{
retries--;
}
}
}
return response;
}
catch (SocketException)
{
if (socketTrials <= 0)
{
throw;
}
socketTrials--;
}
catch (Exception)
{
if (retries <= 0)
{
throw;
}
retries--;
}
await Task.Delay(_random.Next(1000, 10000));
}
}