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
}