Как установить VisibilityTimeout в queueCollector.AddAsync? - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть функция, которая добавляет сообщения в очередь, используя queueCollector.AddAsync (message).

Я хотел бы установить VisibilityTimeout для сообщения.Как это можно сделать?

1 Ответ

0 голосов
/ 11 декабря 2018

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

...