Я использую AWS .Net Core SDK для подключения к Amazon DynamoDB, все работает нормально, за исключением многократного и случайного получения тайм-аутов (около 30 секунд на запрос).
Я использовал ведение журнала и проследил проблему доМетод GetRemainingAsync после получения результатов операции сканирования.
public async Task<IList<T>> GetByPropertyAsync(List<KeyValuePair<string, object>> properties)
{
var conditions = new List<ScanCondition>();
foreach (var property in properties)
{
conditions.Add(new ScanCondition(property.Key, ScanOperator.Equal, property.Value));
}
var response = base.ScanAsync<T>(conditions, _config);
return response.GetRemainingAsync().Result;
}
При регистрации и отправке нескольких запросов (один за другим) строка response.GetRemainingAsync().Result
зависает около 30 секунд, это часто происходит.
Возможнобыть связанной с потоками проблемой, я попытался запустить эту строку в отдельном потоке, используя:
Task.Run(() => response.GetRemainingAsync()).Result;
Но это тоже не сработало.