Azure WebJobs SDK - в каких сценариях создается объект JobHost?
В большинстве образцов, связанных с SDK Azure WebJobs, есть код запуска, который выглядит следующим образом:
static void Main()
{
JobHost h = new JobHost();
h.RunAndBlock();
}
Однако вы также можете запустить WebJob без создания объекта JobHost
следующим образом:
static void Main()
{
// Do something...
}
В каких сценариях нужен JobHost
?
Ответы
Ответ 1
Вам нужна конфигурация хоста заданий, если вы хотите взаимодействовать с Azure Storage (хранилище таблиц, очереди, blobs) или ServiceBus , и если вы хотите открыть свои функции на информационной панели Azure WebJobs.
Это код, который я использую в WebJob, который не использует JobHost
static ISubscriptions _subscriptions;
static void Main()
{
Process();
}
public static void Process()
{
_subscriptions.DoWork();
}
Ответ 2
WebJobs и WebJobs SDK - это две разные вещи, хотя их имя похоже.
- WebJobs (без SDK) - это особенность веб-сайтов Azure. Это универсальный, агностический механизм языка/платформы, который может выполнять задания. Вы можете писать задания на многих языках, включая: node, пакетный, С#/VB/любой другой язык .NET
- WebJobs SDK - это инфраструктура, только для .NET, которая упрощает задачу написания кода, который работает с очередями, блоками и таблицами Azure Storage и очередями Service Bus; Кроме того, он не привязан к веб-сайтам WebJobs - он может работать в любом приложении .NET.
JobHost
- это точка входа для SDK Azure WebJobs. Он отвечает за индексацию, публикацию, мониторинг и планирование функций, определенных с помощью артефактов WebJobs SDK. Всякий раз, когда вы хотите вызвать функцию SDK WebJobs (вызванную или ручную/вызванную), вам нужен экземпляр JobHost
. Если вашему коду не требуется Azure Storage/ServiceBus, или если вы хотите написать все опросы/протоколирование самостоятельно, вам не нужен SDK Azure WebJobs.