Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure Function V2服务总线消息延迟_C#_Azure_Azure Functions_Messaging_Azureservicebus - Fatal编程技术网

C# Azure Function V2服务总线消息延迟

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标准客户端中

我正在尝试将v1函数转换为v2函数,但找不到用于延迟消息的替代函数

在Azure函数的V1中,它是
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已经过期。见我的帖子: