Обработка очереди служебной шины Azure для ее очистки за один раз.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Обработка очереди служебной шины Azure для ее очистки за один раз.

Сообщение Anonymous »

У меня есть очередь служебной шины Azure, которую я, возможно, ошибочно использую для хранения идентификаторов представлений определенного элемента.
Каждый раз при получении представления я отправляю сообщение в очередь для последующей обработки.< /p>
Когда наступит позже, я хочу в идеале обработать ВСЕ сообщения в очереди, чтобы можно было пакетно отправить обновление представлений в базу данных.
Кажется, есть несколько вариантов: либо раскрутите ServiceBusProcessor, подпишитесь на ProcessMessageAsync, вызовите awaitprocessor.StartProcessingAsync(); и дайте ему поработать некоторое время, прежде чем вызывать awaitprocessor.StopProcessingAsync();< /code> в то время как в методе, занимающемся обработкой сообщений, пакетно группируются изменения для отправки в базу данных.
Другой вариант — использовать ServiceBusReceiver и вызвать ожидающий получатель.ReceiveMessageAsync (); в цикле до тех пор, пока результат не станет нулевым (насколько я могу судить, это означает, что очередь пуста), одновременно группируя каждое полученное сообщение для обновления базы данных.
Мой вопрос: какой из этих вариантов предпочтительнее другого?
Я знаю, что, используя процессор, мне фактически приходится угадывать, как долго обрабатывать очередь, в надежде, что она будет достаточно длинным, чтобы опустеть, что не совсем идеально, но позволяет мне установить счетчик предварительной выборки, режим приема (я выбрал ReceiveAndDelete) и ConcurrentCalls. Кажется, это повышает общую скорость обработки.
Использование цикла с получателем.ReceiveMessageAsync, кажется, лучше соответствует моему варианту использования, но я не уверен, насколько это надежно исчерпать всю очередь за один раз.
любая помощь/указания очень ценятся.

Подробнее здесь: https://stackoverflow.com/questions/786 ... -in-one-go
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»