Merge pull request '添加RabbitMQ消息处理失败,重新回炉' (#424) from eithday/Admin.NET.Pro:v2 into v2
Reviewed-on: https://code.adminnet.top/Admin.NET/Admin.NET.Pro/pulls/424
This commit is contained in:
commit
65ec0e551b
@ -37,15 +37,34 @@ public class RabbitMqConsumer : BackgroundService
|
|||||||
|
|
||||||
consumer.ReceivedAsync += async (sender, ea) =>
|
consumer.ReceivedAsync += async (sender, ea) =>
|
||||||
{
|
{
|
||||||
byte[] body = ea.Body.ToArray();
|
try
|
||||||
var message = Encoding.UTF8.GetString(body);
|
{
|
||||||
|
byte[] body = ea.Body.ToArray();
|
||||||
|
var message = Encoding.UTF8.GetString(body);
|
||||||
|
|
||||||
await _handler.HandleMessageAsync(message);
|
await _handler.HandleMessageAsync(message);
|
||||||
|
|
||||||
Console.WriteLine($"[x] Received from {_handler.QueueName}: {message}");
|
Console.WriteLine($"[x] Received from {_handler.QueueName}: {message}");
|
||||||
await channel.BasicAckAsync(deliveryTag: ea.DeliveryTag, multiple: false);
|
await channel.BasicAckAsync(deliveryTag: ea.DeliveryTag, multiple: false);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "消息处理失败");
|
||||||
|
await channel.BasicNackAsync(deliveryTag: ea.DeliveryTag, multiple: false, requeue: true);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
await channel.BasicConsumeAsync(queue: _handler.QueueName, autoAck: false, consumer: consumer);
|
await channel.BasicConsumeAsync(queue: _handler.QueueName, autoAck: false, consumer: consumer);
|
||||||
|
|
||||||
|
// 注册取消回调
|
||||||
|
stoppingToken.Register(async () =>
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Stopping RabbitMQ consumer");
|
||||||
|
if (channel.IsOpen)
|
||||||
|
{
|
||||||
|
await channel.CloseAsync();
|
||||||
|
}
|
||||||
|
_connection.Dispose();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user