Что произошло с методами CompleteAsync и AbandonAsync для ServiceBusTriggers в функциях Azure 2.0 - PullRequest
0 голосов
/ 20 декабря 2018

Я мог бы реализовать нечто похожее на следующее в функциях Azure 1.0, но теперь кажется, что версии 2.0 CompleteAsync() и AbandonAsync() больше не доступны.

[FunctionName("Process")]
public static async System.Threading.Tasks.Task RunAsync(
    [ServiceBusTrigger(
        "%ServiceBus.Topic%", "%ServiceBus.Subscription%",
        Connection = "AzureWebJobsServiceBus")]Message message, ILogger log) {
    try {
        MyMessageModel messageModel = message.GetBody<MyMessageModel>();
        await DoAllTheThingsAsync().ConfigureAwait(false);                
        await message.CompleteAsync().ConfigureAwait(false);
    } catch {
        await message.AbandonAsync().ConfigureAwait(false);
        throw;
    }
}

Был ли элемент управления передан Функция Azure по умолчанию для Peek Lock ?

1 Ответ

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

Функция Azure 1.X используется WindowsAzure.ServiceBus библиотека для обработки сообщений.Там такие методы, как CompleteAsync() и AbandonAsync(), были доступны с объектом BrokeredMessage , полученным функцией.

Где в функциях версии 2.X используется библиотека Microsoft.Azure.ServiceBus , здесь BrokeredMessage заменяется объектом Message , где таких методов нетимеется в наличии.Они доступны только под QueueClient .

...