Azure功能应用程序,服务总线和退货服务总线

来了

我有一个带有服务总线输入属性和服务总线输出属性集的天蓝色函数。

这意味着我从此函数返回的所有内容都将返回到“返回”队列。

但是,我想手动处理一些消息,因为没有必要重试它们,我只想将它们直接放在LDQ上并继续。

所以我添加了MessageReceiver作为带有lockToken的参数。

都好。

但是现在,如果我处理该消息并发送给DLQ,则由于期望返回,因此无法正常结束该函数的执行。所以我抛出一个例外。但是现在我在输出中有很多错误日志,例如“锁无效”。

我试图将自动完成设置为false,但是我遇到了另一个问题。我如何确保我可以返回消息并将其记录在事务中并处理回滚?

有指导吗?

例:

  public static class Function1
    {
        [FunctionName("Function1")]
        [return: ServiceBus("returnQueueName", Connection = "myConnectionString")]
        public static async System.Threading.Tasks.Task<ReturnMessage> RunAsync([ServiceBusTrigger("mytopic", "mysubscription", Connection = "myConnectionString")]
        string mySbMsg, ILogger log,
            MessageReceiver messageReceiver, string lockToken)
        {
            log.LogInformation($"C# ServiceBus topic trigger function processed message: {mySbMsg}");

            await messageReceiver.DeadLetterAsync(lockToken);

            return new ReturnMessage();
        }
    }

    public class ReturnMessage
    {
        public string Payload { get; set; }
    }

希望您可以看到输入队列和输出队列由托管系统-Azure处理。我喜欢这个,因为它将为我照顾原子力。

但是,如果我加入这一行:

await messageReceiver.DeadLetterAsync(lockToken);

这会将当前消息移至DLQ。

大!!!这就是我想要的。

但是我现在不得不返回某些东西或抛出异常。有什么办法解决这个问题,因为看到错误消息是令人误解的,因为没有后续错误。

来了

据我所知,您似乎不应使用自动回程服务总线绑定。相反,您应该手动连接到返回主题/队列并手动处理消息后勤。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Azure的服务总线 - 用于Java应用程序的集成测试方法

Azure服务总线等待响应

在逻辑应用程序中从服务总线获取内容

Azure功能-限制服务总线触发

使用azure逻辑应用程序以字符串形式将消息发送到azure服务总线

Azure服务总线“ ReceiveAsync”

使用MSI的Azure功能访问服务总线

如何在逻辑应用程序中将Keyvault用于服务总线连接字符串

在azure逻辑应用程序中,如何从azure服务总线主题中的死信队列中检索消息

多租户Azure服务总线

如何在逻辑应用程序中将参数传递给服务总线主题名称?

Azure服务总线-当应用程序位于Docker容器中时,MessageLockLostException否则工作正常

集成测试连接到服务总线队列的Azure功能应用

Azure服务总线功能未运行

Masstransit EndpointConvention Azure服务总线

Azure服务总线:什么是“请求”和“消息”?

电子商务应用程序中的服务总线队列

Azure服务总线队列,主题和中继

Azure服务总线队列OnMessageOptions

Azure服务总线消息传递

DataPower - Azure 服务总线集成

寻找通过服务总线消息对应用程序进行压力测试的工具

Azure 服务总线会话排序

消费者是否可以在 Azure 服务总线应用程序的本地?

Azure 服务总线 SendAsync 未在控制台应用程序中发送消息

如何在 Django 应用程序中用 azure 服务总线替换 celery 任务?

面向 AWS 和 Azure 的应用程序的单一代码库,用于传递服务,例如服务总线、blob、SQS/SNS 等

通过逻辑应用创建 Azure 服务总线主题和订阅

Azure 服务总线订阅指标