C# Azure Function V2服务总线消息延迟
我正在尝试将v1函数转换为v2函数,但找不到用于延迟消息的替代函数 在Azure函数的V1中,它是C# Azure Function V2服务总线消息延迟,c#,azure,azure-functions,messaging,azureservicebus,C#,Azure,Azure Functions,Messaging,Azureservicebus,我正在尝试将v1函数转换为v2函数,但找不到用于延迟消息的替代函数 在Azure函数的V1中,它是BrokeredMesage上的一个方法,名为.DeferAsync()。在V2中,不再有代理消息,而只有Microsoft.Azure.ServiceBus.Message,并且它不包含.DeferAsync()的方法 根据报告: 该API在.NET Framework客户端中为BrokeredMessage.Defer或BrokeredMessage.DeferAsync,在.NET标准客户端中
BrokeredMesage
上的一个方法,名为.DeferAsync()
。在V2中,不再有代理消息
,而只有Microsoft.Azure.ServiceBus.Message
,并且它不包含.DeferAsync()的方法
根据报告:
该API在.NET Framework客户端中为BrokeredMessage.Defer或BrokeredMessage.DeferAsync,在.NET标准客户端中为MessageReceiver.DeferAsync,在Java客户端中为mesageReceiver.Defer或MessageReceiver.deferSync
但是我怎样才能访问MessageReceiver?
以下是我的函数示例:
[FunctionName("MyFunction")]
public static void Run([ServiceBusTrigger("topic", "subscription", Connection = "AzureServiceBusPrimary")]Message message, ILogger log)
{
//Code
}
那么,有人知道如何延迟从Azure服务总线触发的V2
消息吗?正如您所提到的,新的消息接收器提供了一种异步延迟方法,您可以使用以下代码将其添加到您的函数中:
[FunctionName("MyFunction")]
public static async Task Run([ServiceBusTrigger("topic", "subscription", Connection = "AzureServiceBusPrimary")]Message message, string lockToken, MessageReceiver messageReceiver, ILogger log)
{
//Your function logic
await messageReceiver.DeferAsync(lockToken);
}
您在哪里找到此文档?很抱歉,我无法提供文档源,因为我在为v2函数实现自定义重试逻辑时发现了此文档,并看到了使用它的实现代码。我还没有找到详细的文档来源,但是如果有人有,请在评论中分享。今天没有文档,但是它是由函数SDK注入的。我在我的博客文章中捕捉到了它。音频,需要将其添加到文档中。功能团队正在编写服务总线触发器的文档,以澄清您可以绑定到MessageReceiver
类。在这里,DeferAsync()
方法作为SDK文档的一部分进行了记录。此文档改进的问题在于:。由于某些原因,这在我这方面不起作用。我收到一个错误,消息已经完成,因此lockToken已经过期。见我的帖子: