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();
                }
            }
        }
Exemplo n.º 2
0
        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);
                }
            }
        }