Несколько экземпляров Azure Webjob в одной очереди

#azure #azure-webjobs

#azure #azure-webjobs

Вопрос:

Я ищу способ, чтобы несколько экземпляров моего Azure webjob выполнялись вместе и очищали мою очередь.

Одна из функций нашего приложения заключается в уменьшении кредита пользователя при каждом просмотре страницы на их сайте (вызывается ajax). В настоящее время у нас около 600 таких веб-сайтов, и каждый просмотр страницы их сайта генерирует вызов, который приводит к списанию кредита с их учетной записи (SQL Azure).

Это происходит в режиме реального времени, и мы вызываем sql server при каждом из этих вызовов. Пока все работает нормально, но я бы хотел перенести эту задачу на веб-задания и очередь, поскольку я считаю, что это лучший способ сделать это.

Мой вопрос в том, как мне настроить webjob или их серию для работы с одной и той же очередью и совместной работы, чтобы завершить все в очереди. Есть ли способ увеличить их количество, если, скажем, очередь достигает большого количества массажей?

Сегодня утром я повсюду искал эту информацию, но, к сожалению, я ничего не могу найти по этому вопросу.

Ответ №1:

Вы можете написать веб-задание, используя Azure WebJobs SDK, которое запускается сообщениями в вашей очереди, а затем развернуть несколько экземпляров (путем масштабирования). Каждый экземпляр задания выбирает другое сообщение из очереди.

Вы можете использовать функцию масштабирования веб-сайтов Azure. Каждый дополнительный экземпляр веб-сайта также означает дополнительный экземпляр webjobs. http://azure.microsoft.com/en-us/documentation/articles/web-sites-scale /

Если вы хотите масштабировать на основе количества сообщений очереди, подумайте (не уверен!) что вы можете использовать API управления для программного масштабирования.

Комментарии:

1. Спасибо за ответ, Виктор. но я уже знаю, что пока мы находимся в непрерывном режиме, он будет работать со всеми экземплярами. Мне было интересно, есть ли способ иметь несколько экземпляров webjob в каждом экземпляре веб-сайта без их многократной репликации (если это имеет смысл).

2. Если вы используете пакет SDK WebJobs, вы можете создать несколько узлов заданий внутри одного процесса

3. Привет, Виктор, извините, не видел вашего комментария. Есть ли документация или руководство о том, как это сделать? Кроме того, будет ли в этом случае предпочтительнее использовать RunOnBackgroundThread?