2016-12-02 3 views
3

Я создал шину служебной шины и новое логическое приложение с помощью ручного триггера. Затем я добавляю приложение «Получить сообщения из очереди (peek-lock)» в приложение и устанавливаю максимальное количество сообщений в «20».Получить сообщения из очереди получает только одно сообщение

Затем я создаю 5 новых сообщений в своей очереди вручную, а затем запускаю новое логическое приложение. Когда я смотрю на исполнение моего приложения, я вижу, что только одно сообщение было восстановлено (и отмечено, что 4 сообщения все еще находятся в моей очереди).

Похоже, что подсчет «20» не соблюдается. Я также проверил настройки своей очереди служебной шины, а «Максимальный размер доставки» установлен на «10». Это должно по крайней мере дать мне партии по 10 (вместо 20).

Что мне не хватает?

+1

В одном пояснении о '' Maximum Delivery Count 'установлено значение «10» ': это означает, что сообщение будет обработано не более 10 раз, прежде чем оно будет свернуто, т. Е. Отправлено на субаренду мертвой буквы. –

+0

В сценарии queueClient вы можете установить OnMessageOptions.MaxConcurrentCalls на 5 (например), он будет создавать 5 разных потоков для такого количества сообщений. не уверен, что это будет работать в случае с логическим приложением. – Aravind

ответ

0

Это не так просто ответить без дополнительной информации. Тем не менее я надеюсь, что это может помочь.

Если вы используете WebJob, убедитесь, что связанный с ним AzureWebJobsStorage создан в классическом режиме вместо удаленного режима. Это приведет к сбою вашего WebJob менее чем за 20 секунд ... не считывая все сообщения в очереди.

Включает ли ваше логическое приложение ServiceBusTrigger? Тогда кажется, что первый вызов вашего метода, помеченный корректным триггером, завершился с ошибкой, а другие сообщения не прочитаны.

Сообщите мне, если я неправильно понял некоторые детали.

 Смежные вопросы

  • Нет связанных вопросов^_^