我将消息发布到一个虚拟主题,然后从那里发布到两个队列。我正在使用 ReceiverLink 异步使用来自其中一个队列的消息。
ReceiverLink receiverLink = new ReceiverLink(
_session, "recevier_link-1", new Source()
{
Durable = 1,
Address = "MyQueue",
Capabilities = new Symbol[] { new Symbol("Queue") }
}, onReceiverAttached);
receiverLink.Start(20, (receiverLink, msg) => {
var t = ProcessMessageAsync(receiverLink, msg);
} );
receiverLink.SetCredit(10, CreditMode.Auto, 10);
public async Task ProcessMessageAsync(IReceiverLink receiver, Message message)
{
try
{
receiver.Accept(message);
_logger.LogDebug("Accepted Message : {message}", message.Body.ToString());
}
catch (Exception ex)
{
}
await Task.Delay(1000);
}
我正在接受这些消息,但 UI 中的出列计数仍为 0。
从 receiverlink API 文档中,“应用程序通过调用 Accept(Message)、Reject(Message, Error)、Release(Message) 或 Modify(Message, Boolean, Boolean, Fields) 方法来确认消息。”
一旦消息被确认,消息是否应该在 UI 中出列?
在消费者上附加 AMQP 跟踪,