Могу ли я запустить несколько экземпляров функции Azure, слушая одну и ту же очередь - PullRequest
0 голосов
/ 06 марта 2019

Справочная информация: Недавно я столкнулся с проблемой, заключающейся в том, что моя функция не может справиться с нагрузкой, и сообщения очереди накапливаются. В долгосрочной перспективе я смотрю на код, чтобы найти узкие места, но в краткосрочной перспективе мне нужно решить эту проблему.
Вопрос: Могу ли я добавить несколько экземпляров одной и той же функции Azure (даже если это переименование myjobrunner1, myjobrunner2) и т. Д., Которые все слушают одну и ту же очередь? Поможет ли это в моей ситуации?

Некоторые оговорки:
Премиум-план выглядит неплохо, но я не могу проверить предварительный просмотр в процессе производства.
Добавление выделенного AppService является опцией, но это более долгосрочное исправление. У меня сейчас проблема.
Исправления кода находятся в процессе, чтобы лучше справляться с нагрузкой и повышать производительность, но тот факт, что внешние сервисы удерживают их, является фактором.

1 Ответ

0 голосов
/ 08 марта 2019

Как я решил проблему.
Я добавил дополнительную очередь и логику для разделения сообщений между двумя очередями. Затем я создал новый экземпляр функции (1 и 2), которая указала на вторую очередь. Я изначально думал, что очереди работают, позволяя снять только одну копию сообщения. Тогда никакой другой сервис не сможет прочитать это сообщение. Похоже, что это не так с моим тестированием.

Выполнение двух функций, каждая с максимальным количеством партий, решило проблему. Это шаблон, который я могу продолжать, пока мы не сможем эффективно рассмотреть дополнительные улучшения кода. Но нашей бутылочной горловиной являются экземпляры httpclient (я не могу запустить их как статические и потребует значительных изменений) и некоторые вызовы БД, которые можно оптимизировать.

Если у кого-то есть другое предложение, добавьте его. Когда выйдет премиум-план, я попробую, но до тех пор мне придется придерживаться этого решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...