protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { Task task = Task.Run(async() => { while (true) { try { await ExchangeManager.RunTrades(); } catch (System.Exception e) { Console.WriteLine("FATAL EXCHANGE ERROR:"); Console.WriteLine(e.Message); } } }); while (!task.IsCompleted) { _logger.LogInformation("Exchange running at: {time}", DateTimeOffset.Now); await Task.Delay(60000, stoppingToken); } _logger.LogInformation("Exchange task stopped at: {time}", DateTimeOffset.Now); _logger.LogInformation("Restarting.", DateTimeOffset.Now); } }