Функция Azure Service V2, отсрочка сообщения служебной шины - PullRequest
2 голосов
/ 04 июня 2019

Я пытаюсь преобразовать свою функцию v1 в функцию v2, но не могу найти замену для отсрочки сообщения.

В V1 функций Azure это был метод на BrokeredMesage, называемый .DeferAsync(). В V2 больше нет BrokeredMessage, а просто Microsoft.Azure.ServiceBus.Message, и это не содержит метод .DeferAsync().

Согласно документам :

API - это BrokeredMessage.Defer или BrokeredMessage.DeferAsync в клиенте .NET Framework, MessageReceiver.DeferAsync в клиенте .NET Standard и mesageReceiver.defer или messageReceiver.deferSync в клиенте Java.

Но как я могу получить доступ к MessageReciever? Вот пример моей функции:

[FunctionName("MyFunction")]
public static void Run([ServiceBusTrigger("topic", "subscription", Connection = "AzureServiceBusPrimary")]Message message, ILogger log)
{
    //Code
}

Так кто-нибудь знает, как отложить V2 Message, который запускается из служебной шины Azure?

1 Ответ

2 голосов
/ 04 июня 2019

Как вы упомянули, новый получатель сообщений предлагает метод асинхронной отсрочки, и вы можете добавить его к своей функции, используя следующий код:

[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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...