Я использую DynamoDb для настройки таблицы, которую можно обновлять с помощью вызовов API. Изучив документацию по DynamoDB, я написал функцию элемента обновления в. NET следующим образом:
public static async Task IntAsync(string phone, string s)
{
getAsync(phone).Wait();
AmazonDynamoDBConfig clientConfig = new AmazonDynamoDBConfig();
clientConfig.RegionEndpoint = RegionEndpoint.APSouth1;
try
{
using (IAmazonDynamoDB ddbClient = new AmazonDynamoDBClient(clientConfig))
{
await ddbClient.UpdateItemAsync(new UpdateItemRequest
{
TableName = "TableName",
Key = new Dictionary<string, AttributeValue>
{
{"ID", new AttributeValue{S=phone} },
},
ExpressionAttributeNames = new Dictionary<string, string>()
{
{"#P", "Progress" },
{"#A", "attempt"+count.ToString() },
{"#S", s }
},
ExpressionAttributeValues = new Dictionary<string, AttributeValue>()
{
{":s",new AttributeValue {S=DateTime.Now.ToString()}},
},
UpdateExpression = "SET #P.#A.#S = :s",
ConditionExpression = "attribute_not_exists(#P.#A.#S)"
});
}
}
catch (Exception e)
{
Console.WriteLine("Update Error: " + e.Message);
}
}
Проблема: Эта функция прекрасно работает при вызове через main, и изменения отражается мгновенно, однако вызов той же функции через ядро. Net. Запрос Get api не возвращает никакого результата и продолжает отправлять запрос почтальону.
Запрос на получение выглядит следующим образом:
public async Task<string> GetAsync(string mobile, string s)
{
await Program.IntAsync(string mobile, string s);
return "Done";
}
Однако удаление вызова функции из запроса на получение приводит к выполнению запроса, и все остальные функции работают отлично. У меня есть несколько других запросов на обновление через запросы get, все они отлично работают.
Вот что почтальон продолжает говорить