У меня запущено приложение hangfire. Hangfire отвечает за запуск нескольких различных сервисов API через повторяющиеся задания:
[HttpPost]
public void Post([FromForm] Model value)
{
var apiUrl = value.ApiUrl; // http://api.com/start/1
var interval = value.Interval;
RecurringJob.AddOrUpdate(value.ApiName, () => RunInBackground(apiUrl), Cron.MinuteInterval(value.Interval));
var api = JobStorage.Current.GetMonitoringApi();
}
[DisableConcurrentExecutionWithParametersAttribute(timeoutInSeconds: 10 * 60)]
[AutomaticRetry(Attempts = 0)]
public async Task<bool> RunInBackground(string Url)
{
using (HttpClient httpClient = new HttpClient())
{
var response = await httpClient.GetAsync(Url);
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var responseFromApi = await response.Content.ReadAsStringAsync();
return true;
}
}
Единственное, чего я хочу добиться, это дождаться ответов от API, прежде чем снова начинать работу. Как я могу это сделать?