如果消息接收模式在Azure Service Bus中接收模式,则消息是什么



我以接收到的方式从服务总线接收一条消息,然后开始运行一个很长的计算过程,该过程在完成后发送邮件。我在长期运行的方法中都有所有方法记录的错误。但是,该方法运行10-15分钟,并在此之后变得无响应,它都没有记录错误,而是发送电子邮件。我想知道这可能与消息的ttl有关。

请建议我该怎么办?

    private static async Task ProcessMessagesAsync(Message message, CancellationToken token)
    {
       try
         {
           IQueueClient queueClient = new QueueClient(serviceBusConnectionString, serviceBusQueueName, ReceiveMode.ReceiveAndDelete);

            var receivedMessageTrasactionId = Convert.ToInt64(Encoding.UTF8.GetString(message.Body));
            // Very Long Running Method  
            await DataCleanse.PerformDataCleanse(receivedMessageTrasactionId);
                         // to avoid unnecessary exceptions.
          }
        catch (Exception ex)
        {
          Log4NetErrorLogger(ex);
          throw ex;
        }
    }

ReceiveAndDelete模式下接收消息时,消息的直播时间无关紧要。一旦在客户端收到消息后,它将从经纪人中删除。如果出错,消息就消失了。这就是为什么建议使用更安全的检索和处理消息机制时使用PeekLock接收模式的原因。警告是处理时间。我不会因为有足够的信息而介入,但是您可以续订消息的锁定或卸载处理以消除锁定续订的需求。您会在此答案中找到替代方案。

相关内容

  • 没有找到相关文章

最新更新