in Runtime/Core/Latency/LatencyService.cs [29:69]
public async Task<GetLatenciesResponse> GetLatencies(GetLatenciesRequest request)
{
try
{
if (request == null || request.Regions == null || !request.Regions.Any())
{
return Response.Fail(new GetLatenciesResponse
{
ErrorCode = ErrorCode.InvalidParameters
});
}
var regionLatencyMap = new Dictionary<string, long>();
var regionLatencyCalculationTasks = new List<Task>();
foreach (string region in request.Regions)
{
regionLatencyCalculationTasks.Add(
CalculateLatencyForRegion(regionLatencyMap, region)
);
}
await Task.WhenAll(regionLatencyCalculationTasks);
return Response.Ok(new GetLatenciesResponse
{
RegionLatencies = regionLatencyMap
});
}
catch (Exception ex)
{
Logger.LogError(ex, ex.Message);
return Response.Fail(new GetLatenciesResponse
{
ErrorCode = ErrorCode.UnknownError,
ErrorMessage = ex.Message
});
}
}