Похоже, ваша функция использует 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 есть еще один видимостьTimeout.Если вы хотите установить временной интервал между повторными попытками, когда обработка сообщения не удалась, посмотрите на это.