Azure 如何在queueCollector.AddAsync中设置VisibilityTimeout?

Azure 如何在queueCollector.AddAsync中设置VisibilityTimeout?,azure,azure-storage,azure-functions,Azure,Azure Storage,Azure Functions,我有一个使用queueCollector.AddAsyncmessage将消息添加到队列的函数 我想为每条消息设置一个VisibilityTimeout。如何实现这一点?看起来您的函数使用IAsyncCollector作为输出类型。使用此输出绑定,我们只能输出消息正文,Azure存储服务会自动设置visibilityTimeout等属性 为了控制CloudQueueMessage的属性,我们可以使用CloudQueue作为输出类型,即直接绑定到队列。请注意,visibilitytimeouot不

我有一个使用queueCollector.AddAsyncmessage将消息添加到队列的函数


我想为每条消息设置一个VisibilityTimeout。如何实现这一点?

看起来您的函数使用IAsyncCollector作为输出类型。使用此输出绑定,我们只能输出消息正文,Azure存储服务会自动设置visibilityTimeout等属性

为了控制CloudQueueMessage的属性,我们可以使用CloudQueue作为输出类型,即直接绑定到队列。请注意,visibilitytimeouot不能大于7天

C预先编译的代码示例,使用队列触发器并输出消息

public static async Task Run([QueueTrigger("queue-in")]string message, ILogger log, 
    [Queue("queue-out")]CloudQueue outQueue)
{
    // set 3 minutes visibility timeout after being created in the queue
    await outQueue.AddMessageAsync(new CloudQueueMessage(message), null, TimeSpan.FromMinutes(3), null, null);
}
用于在线开发的C脚本示例

#r "Microsoft.WindowsAzure.Storage"

using System;
using Microsoft.WindowsAzure.Storage.Queue;

public static async Task Run(string message, ILogger log, CloudQueue outQueue)
{
    log.LogInformation($"C# Queue trigger function processed: {message}");
    await outQueue.AddMessageAsync(new CloudQueueMessage(message), null, TimeSpan.FromMinutes(3), null, null);
}
它的函数是.json


中有另一个可视性超时。如果要设置消息处理失败时重试之间的时间间隔,请查看它

关于github上的这个问题,我想使用IAsyncCollector也应该可以。IAsyncCollector确实可以获得一条CloudQueueMessage,这将起到作用。但需要添加Microsoft.WindowsAzure.Storage.Queue。@CarlosalvesOrge您能详细说明一下吗?我以前注意到CloudQueueMessage,但我无法设置其属性。@Jerry Liu不理想,但会完成这项工作@CarlosAlvesJorge很高兴你做到了,所以你用的是在线csx?我的解决方案使用预编译的代码,并且在利用输出绑定时与答案类似。如果需要,我可以修改我对csx的回答。
{
  "bindings": [
    {
      "name": "message",
      "type": "queueTrigger",
      "direction": "in",
      "queueName": "queue-in",
      "connection": "MyStorageConnection"
    },
    {
      "type": "queue",
      "name": "outQueue",
      "queueName": "queue-out",
      "connection": "MyStorageConnection",
      "direction": "out"
    }
  ]
}