В общем, заказанный обмен сообщениями - это не то, к чему я бы стремился, поскольку порядок может и в какой-то момент будет искажен.Сказать, что в некоторых сценариях это требуется.Для этого вам следует либо использовать Durable Function для управления вашими сообщениями, либо использовать служебную шину Сеансы сообщений .
. Функции Azure недавно добавили поддержку заказанной доставки сообщений (акцент на части доставки используется в качестве обработки).все еще может потерпеть неудачу).Это почти то же самое, что и обычная функция, с небольшим изменением, которое необходимо указать SDK для использования сессий.
public async Task Run(
[ServiceBusTrigger("queue",
Connection = "ServiceBusConnectionString",
IsSessionsEnabled = true)] Message message, // Enable Sessions
ILogger log)
{
log.LogInformation($"C# ServiceBus queue trigger function processed message: {Encoding.UTF8.GetString(message.MessageId)}");
await _cosmosDbClient.Save(...);
}
Вот запись для получения дополнительной информации.
Предупреждение : использование сеансов потребует отправки сообщений с идентификатором сеанса, что может потребовать изменения на стороне отправителя.