0

im new with Kafka and im studing now, and i get some issue when im try consume a message. I have 2 example, when i create a user and when create a new Product. For User the message is consumed correclty in my debug, but for product dosen't work. the bellow case not work after i create a producer, when i look at cofluent UI the message is there, but in my code, consume not read.

private async Task ProdutoRegistrado(Produto produto)
{
    var result = await _produtoRepository.ObterProdutoPorId(produto.Id);
    var model = _mapper.Map<ProdutoDTO>(result);

    var produtoRegistado = new ProdutoRegistradoIntegrationEvent(model.Id, model.Nome, model.Imagem, model.Valor,
        model.Quantidade, model.Ativo, model.CategoriaId);

    try
    {
        await _bus.ProducerAsync("ProdutoCadastrado", produtoRegistado);
    }
    catch (Exception ex)
    {

        throw ;
    }
}

this work after i create a producer.

  private async Task RegistrarCliente(UsuarioRegistro usuarioRegistro)
    {
        var usuario = await _userManager.FindByEmailAsync(usuarioRegistro.Email);
        var usuarioRegistrado = new UsuarioRegistradoIntegrationEvent(
                                Guid.Parse(usuario.Id), usuarioRegistro.Nome, usuarioRegistro.Email, usuarioRegistro.Cpf);

        try
        {
            await _bus.ProducerAsync("UsuarioCadastrado", usuarioRegistrado);

        }
        catch (Exception ex)
        {
            await _userManager.DeleteAsync(usuario);
            throw;
        }
    }

Consumer is a background service: In my debug never come here.

private void SetSubscriber(CancellationToken stoppingToken)
    {
       _bus.ConsumerAsync<ProdutoRegistradoIntegrationEvent>("ProdutoCadastrado", async request => await ProdutoRegistrado(request), stoppingToken);

    }

    protected override Task ExecuteAsync(CancellationToken stoppingToken)
    {
        SetSubscriber(stoppingToken);
        return Task.CompletedTask;
    }

    private async Task ProdutoRegistrado(ProdutoRegistradoIntegrationEvent message)
    {
            //a code here

    }

0 Answers0