Как я могу совершать повторяющиеся вызовы URL-адреса по временным интервалам, пока не получу успешный результат или тайм-аут?
Я загружаю файл в API, и он отправляет мне URL, чтобы я мог проверить, является ли мой файлобработано успешно.Я хочу сделать так, чтобы этот URL проверялся на сервере, пока не будет изменен статус ожидания.Есть статусы successful
, failed
и pending
.Я хочу, чтобы пользователь ждал, пока результат не будет успешным или неудачным.
[HttpGet]
public async Task<ActionResult> Get()
{
...
response = await client.GetAsync(other_api_url);
if(response.IsSuccessStatusCode)
{
string result = response.Content.ReadAsStringAsync().Result;
dynamic output = JsonConvert.DeserializeObject<dynamic>(result);
statusUrl = output.url_to_check_status;
//make a call to statusUrl check if content is ready
//get result and parse it
...
status = output.status;
if(status == "SUCCESS")
{
//good path
return Ok();
}
else
{
//make another call after n seconds to check again
}
}
return NotFound();
}