当前位置: 首页 > 知识库问答 >
问题:

具有Azure功能的服务总线窥视问题

朱通
2023-03-14

我有多个消息在我的服务总线主题,我想处理这个消息一个一个,在一个服务总线触发器,它应该得到所有的消息,没有被处理。而且由于我正在进行测试和调试,我不希望消息被完成,也就是说,如果它没有完成,它会留在主题中供任何其他服务使用。

我已经开始使用带有服务总线主题触发器的Azure功能应用程序,并且已经向上移动到这里,在这里我获得了我日志中的所有消息,但是一旦完成,我没有获得任何其他消息,因为所有消息都已经被消耗,并且它们移动到“死信消息计数”,所以它变得非常困难,我做任何调试和测试。

我想知道如何用Azure函数服务总线触发器来处理这个问题,在这里我运行函数在控制台中看到我的消息正文,退出它,然后做必要的转换,然后重复这个过程。在没有服务总线触发器的情况下,我可以用PeekLock的东西来完成,不允许任何消息被完成,但是我如何用函数来完成,因为它似乎是一次将消息拿去触发。

 namespace ServiceBusCopyFunction
{
    public static class GetMetadataFromSB
    {
        static ISubscriptionClient subscriptionClient;
        [FunctionName("GetMetadataFromSB")]
        public static void Run([ServiceBusTrigger("TopicNameSB", "SubscriptionNameSB", Connection = "AzureServiceBusString")] string mySbMsg, ILogger log)
        {
            log.LogInformation($"C# ServiceBus topic trigger function processed message: {mySbMsg}");

        }
    }
}

共有1个答案

陆涵畅
2023-03-14

可以停用host.json文件中的自动完成功能。下面是引用:https://docs.microsoft.com/en-us/Azure/Azure-functions/functions-bindings-service-bus-output?tabs=CSharp#hostjson-settings

示例:

{
    "version": "2.0",
    "extensions": {
        "serviceBus": {
            "messageHandlerOptions": {
                "autoComplete": false
            }
        }
    }
}

因此消息在处理后不会完成。

 类似资料:
  • 我有一个Azure服务总线队列,死信子队列中有236条消息。我知道这一点,因为Azure门户和服务总线资源管理器会向我显示该数字。 我在LINQPad中写了以下内容来检索所有236条消息并检查它们。然而,它只返回236条消息中的136条。 我正在使用v5。微软的1.0。蔚蓝色的获取服务包。 有没有想过为什么我没有收到全部236条信息?

  • 我创建了一个Azure函数,并选择Azure服务总线主题作为Visual Studio 2019中的触发器。我还在Azure帐户中创建了服务总线主题,并具有主连接字符串和主键。 我的问题是: 如何将Azure服务总线与我创建的Azure函数集成?生成的代码中应该更改哪些属性? 如何在我的机器上本地向Azure服务总线主题发送消息?是否有任何类似SQLManagement Studio的应用程序可以

  • 我正在尝试绑定到Azure服务总线触发函数中的。 我的目标是处理死信队列消息并完成它们。 问题是它无法绑定到MessageReceiver类。 微软蔚蓝色的网络作业。主机:错误索引方法“Function1”。微软蔚蓝色的网络作业。主机:无法将参数“receiver”绑定到类型MessageReceiver。确保绑定支持参数类型。如果您使用的是绑定扩展(例如Azure Storage、Service

  • 我希望以批处理模式接收来自Azure ServiceBus主题的消息。 阅读https://docs.microsoft.com/en-us/Azure/Azure-functions/functions-best-practices时指出: 我有一个方法: 这个方法是有效的,但它一次只需要一个消息。 根据Microsoft文档,我可以将其更改为: 注意:主题和订阅已启用“启用批处理操作”设置。

  • 我在为我的项目尝试使用AMQP实现Windows Service Bus 1.1,我安装了Windows Service Bus 1.1,并使用Service Bus Explorer创建了一个名为test的队列,我正在使用下面链接中给出的Java程序测试示例Service Bus功能, 并创建如下的生产者 目标que=(目标)上下文。查找(“队列”);//正在读取表单属性文件 生产者=会话。cr

  • 我一直在尝试创建一个客户端来连接我的Azure服务总线队列。我一直在参考此文档: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-java-how-to-use-queues#send-消息到队列。 我的代码: 在创建客户端时,我遇到以下错误: 通用域名格式。微软蔚蓝色的服务总线。原语。Service