azure - 如何在 queueCollector.AddAsync 中设置 VisibilityTimeout?
问题描述
我有一个使用 queueCollector.AddAsync(message) 将消息添加到队列的函数。
我想为每条消息设置一个 VisibilityTimeout。怎么做到呢?
解决方案
看起来您的函数IAsyncCollector<T>
用作输出类型。使用此输出绑定,我们只能输出消息正文,而 visibilityTimeout 等属性由 Azure 存储服务自动设置。
为了控制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);
}
它的function.json
{
"bindings": [
{
"name": "message",
"type": "queueTrigger",
"direction": "in",
"queueName": "queue-in",
"connection": "MyStorageConnection"
},
{
"type": "queue",
"name": "outQueue",
"queueName": "queue-out",
"connection": "MyStorageConnection",
"direction": "out"
}
]
}
host.json中还有另一个 visibilityTimeout 。如果您想在消息处理失败时设置重试之间的时间间隔,请查看它。
推荐阅读
- python - 我如何在决策树中应用 x_train 和 y_train
- java - 尝试从凌空响应调用返回 JSON 对象
- docker - 无法理解 Docker Compose 环境变量
- r - 如何在闪亮的仪表板侧边栏中的 menuItem 或固定框下创建 checkBoxGroup 项?
- sql - Postgres - 仅选择具有 FAILURE 状态的日期
- javascript - 为什么 .toLocaleTimeString 不转换时区
- vba - 方法 .GetRows 返回 Empty - 访问 VBA
- c++ - 在其他父类实现的C++接口中使用抽象虚函数
- python - 如何从此 $68.95 中获取 int 值
- google-apps-script - 有没有办法通过应用程序脚本在谷歌表格的表格上找到现有的过滤器?