Я новичок в служебном автобусе и не могу понять этого.
В основном я использую приложение-функцию Azure, которое подключено к очереди служебной шины. Допустим, из служебной шины срабатывает триггер, и я получаю сообщение из очереди, и при обработке этого сообщения что-то идет не так в моем коде. В таких случаях, как мне убедиться, что это сообщение снова помещено в очередь? В настоящее время он просто исчезает в воздухе, и когда я перезапускаю свое приложение-функцию на VS, берется следующее сообщение из очереди.
В идеале, только когда вся моя обработка данных завершена и когда я нажимаю myMsg.Success (), я хочу, чтобы он был удален из очереди.
public static async Task RunAsync([ServiceBusTrigger("xx", "yy", AccessRights.Manage)]BrokeredMessage mySbMsg, TraceWriter log)
{
try{ // do something with mySbMsg }
catch{ // put that mySbMsg back in the queue so it doesn't disappear. and throw exception}
}
Я читал mySbMsg.Abandon (), но похоже, что это помещает сообщение в очередь недоставленных сообщений, и я не уверен, как получить к нему доступ? а есть ли лучший способ обработки ошибок?