18

大多数与 Azure WebJobs SDK 关联的示例都有如下所示的启动代码:

static void Main()
{
    JobHost h = new JobHost();
    h.RunAndBlock();
}

但是,您也可以在不创建这样的对象的情况下启动 WebJob JobHost

static void Main()
{
    // Do something...
}

在什么场景下是JobHost必要的?

4

2 回答 2

20

WebJobs 和 WebJobs SDK 是两个不同的东西,尽管它们的名称相似。

  • WebJobs(无 SDK)是 Azure 网站的一项功能。它是一个通用的、与语言/平台无关的引擎,可以执行作业。您可以使用多种语言编写作业,包括:节点、批处理、C#/VB/任何其他 .NET 语言
  • WebJobs SDK 是一个仅适用于 .NET 的框架,它简化了编写与 Azure 存储队列、blob 和表以及服务总线队列一起使用的代码的任务;此外,它不依赖于网站的 WebJobs 功能 - 它可以在任何 .NET 应用程序中运行。

JobHost是 Azure WebJobs SDK 的入口点。它负责索引、发布、监控和调度使用 WebJobs SDK 工件定义的功能。每当您想要调用 WebJobs SDK 函数(触发或手动/调用)时,您都需要一个JobHost. 如果您的代码不需要 Azure Storage/ServiceBus,或者您想自己编写所有轮询/日志记录,则不需要 Azure WebJobs SDK。

于 2014-09-13T01:57:29.770 回答
11

当您想要与 Azure 存储(表存储、队列、blob)或 ServiceBus 交互并且想要将您的函数公开给 Azure WebJobs Dashboard时,您需要 Jobs Host Configuration 。

这是我在不使用 JobHost 的 WebJob 中使用的一些代码

static ISubscriptions _subscriptions;

static void Main()
{
    Process();
}

public static void Process()
{
    _subscriptions.DoWork();
}
于 2014-09-12T16:03:29.130 回答