private async Task <bool> Poll(PollingSchedule item) { bool result = false; try { using (HttpClient client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(item.Url); if (response.IsSuccessStatusCode) { result = true; } else { log.LogError($"Poll to {item.Url} failed with response {response.StatusCode}"); } } } catch (Exception xe) { log.LogError(xe, $"Poll to {item.Url} failed"); } return(result); }
private pollWrapper EnsureWrapped(PollingSchedule item) { if (!pollingControl.ContainsKey(item.Url)) { var pw = new pollWrapper { Schedule = CrontabSchedule.Parse(item.Schedule) //, //LastRunTime = DateTime.MinValue, //NextRunTime = DateTime.MinValue }; pw.NextRunTime = pw.Schedule.GetNextOccurrence(DateTime.Now); pollingControl.Add(item.Url, pw); } return(pollingControl[item.Url]); }