protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { try { GrpcChannel channel = GrpcChannel.ForAddress("https://localhost:5001"); OrdersManager.OrdersManagerClient client = new OrdersManager.OrdersManagerClient(channel); NewOrderReply result = await client.GetNewOrderAsync(new NewOrderRequest()); if (result.OrderId != 0) { logger.LogInformation($"Processing order id {result.OrderId}"); await client.UpdateOrderAsync(new UpdateOrderRequest { OrderId = result.OrderId, Status = "Processed by .NET" }); } else { logger.LogInformation($"No pending orders at {DateTimeOffset.Now}"); } await channel.ShutdownAsync(); } catch (Exception ex) { logger.LogError($"{ex.Message}\n{ex.StackTrace}"); } await Task.Delay(3000, stoppingToken); } }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { _logger.LogInformation($"Checking orders at {DateTimeOffset.Now}"); try { Channel channel = new Channel("localhost:50051", ChannelCredentials.Insecure); OrdersManager.OrdersManagerClient client = new OrdersManager.OrdersManagerClient(channel); OrderRequest request = new OrderRequest(); OrderReply result = await client.GetNewOrderAsync(request); if (result.OrderId != 0) { _databaseService.UpdateOrder(result.OrderId); _logger.LogInformation($"Order with id {result.OrderId} has been processed"); } else { _logger.LogInformation($"No pending orders at {DateTimeOffset.Now}"); } await channel.ShutdownAsync(); } catch (Exception exc) { _logger.LogError(exc.Message + exc.StackTrace); } await Task.Delay(3000, stoppingToken); } }