protected async override Task ExecuteAsync(CancellationToken stoppingToken) { var success = _mqService.DirectReceive <ReplyAutoApprovedEvent>(QueueKeys.ReplyAutoApproved, async c => { try { if (stoppingToken.IsCancellationRequested) { throw new Exception("canceled"); } using (var scope = _serviceProvider.CreateScope()) { var mediator = scope.ServiceProvider.GetRequiredService <IMediator>(); await mediator.Publish(c); } } catch (Exception ex) { _logger.LogError("消息处理失败", ex, c); } }, out string message); if (!success) { _logger.LogError("消息接收异常", message); } await Task.CompletedTask; //while (!stoppingToken.IsCancellationRequested) //{ // await Task.Delay(TimeSpan.FromSeconds(3), stoppingToken); //} //_logger.LogInformation(nameof(ReplyAutoApprovedMQBackgroundService) + " stopping..."); }
protected async override Task ExecuteAsync(CancellationToken stoppingToken) { var success = _mqService.DirectReceive <ProductViewed>(QueueKeys.ProductView, async c => { try { if (stoppingToken.IsCancellationRequested) { throw new Exception("任务已取消"); } using (var scope = _serviceProvider.CreateScope()) { var mediator = scope.ServiceProvider.GetRequiredService <IMediator>(); await mediator.Publish(new ProductViewed { EntityId = c.EntityId, UserId = c.UserId, EntityTypeWithId = EntityTypeWithId.Product }); } } catch (Exception ex) { _logger.LogError("消息处理失败", ex, c); } }, out string message); if (!success) { _logger.LogError("消息接收异常", message); } await Task.CompletedTask; //while (!stoppingToken.IsCancellationRequested) //{ // await Task.Delay(TimeSpan.FromSeconds(3), stoppingToken); //} }