На моем веб-сайте Azure постоянно выполняется веб-задание. Он отвечает за выполнение некоторой работы после получения элементов из QueueTrigger. Я пытаюсь увеличить скорость обработки элементов вне очереди. По мере того, как я масштабирую свой план службы приложений, скорость обработки увеличивается, как и ожидалось.
Меня беспокоит то, что оплачивать дополнительные виртуальные машины просто для запуска дополнительных экземпляров моего Webjob кажется бесполезным. Я ищу варианты / рекомендации для запуска нескольких экземпляров одного и того же Webjob на одном сервере.
Я пробовал запускать несколько JobHosts в отдельных потоках внутри Main (), но либо это не сработало, либо я делал что-то не так ... Webjob не запускался из-за того, что похоже, что каждый поток пытается получить доступ к WebJobSdk. маркер '. Мое текущее решение состоит в том, чтобы публиковать мое веб-задание несколько раз, каждый раз слегка изменяя «webJobName» в «webjob-publish-settings.json», чтобы один и тот же проект считался другим веб-заданием во время публикации. Пока что это отлично работает, ожидайте, что это создает много дополнительной работы каждый раз, когда мне нужно сделать какое-либо обновление.
В конце концов, я ищу несколько советов о том, какой рекомендуемый способ сделать это. В идеале я хотел бы, чтобы несколько экземпляров выполнялись через код, и мне нужно было публиковать только один раз, когда мне нужно обновить код.
Есть какие-нибудь мысли?