public async Task <int> Run() { // TODO: Logging Console.WriteLine("Starting GetFuelInstHhCur"); bool useScheduler = !_getImmediately; while (true) { if (useScheduler) { await _scheduler.ScheduleOne(Duration.FromMinutes(5), Duration.FromMinutes(1.8)); } useScheduler = true; Console.WriteLine("About to get data"); try { var data = await _fuelInstHhCur.GetAsync(); await _datastoreWriter.AppendAsync(data); Console.WriteLine($"Data downloaded OK @ {data.Update}"); } catch (Exception e) { // TODO: Logging Console.WriteLine("Error getting or storing data:"); Console.WriteLine(e); Console.WriteLine(); } } }
public async Task Start(CancellationToken ct) { while (true) { try { await _scheduler.ScheduleOne(s_downloadInterval, s_downloadOffset, ct).ConfigureAwait(_taskHelper); var data = await _fuelInstHhCur.GetAsync(ct).ConfigureAwait(_taskHelper); await _datastoreWriter.AppendAsync(data, ct).ConfigureAwait(_taskHelper); } catch (Exception e) when(e.Is <IOException>() || e.Is <HttpRequestException>()) { await _taskHelper.Delay(Duration.FromSeconds(57)).ConfigureAwait(_taskHelper); } } }