0

我将消息发布到一个虚拟主题,然后从那里发布到两个队列。我正在使用 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 跟踪,

AmqpTrace

4

0 回答 0