4

所有文档(例如http://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-get-started/) 和 Azure WebJobs SDK 的示例项目是指与 Azure 存储(表、博客和队列)的挂钩和绑定。我有兴趣将 WebJobs 用于与这些存储机制无关的功能,例如运行计算、调用服务或将它们与 WebJobs SDK 没有挂钩的其他存储服务一起使用。在这些情况下,使用 WebJobs SDK 有什么价值吗?我的(可能不正确)印象是 sdk 为您管理作业本身的执行提供了许多其他好处,例如控制在单线程中阻塞运行与在后台运行等,可能与相关的操作挂钩启动和停止作业,以及一些与 Visual Studio 的挂钩等。

除了与 Azure 表、博客和队列存储服务的挂钩之外,是否有理由使用 WebJobs SDK?如果是这样,该文档在哪里?

4

3 回答 3

8

以下是一些更多的细节,我希望能回答你的问题。

WebJobs SDK 有一个绑定和触发系统,可与 Microsoft Azure 存储 Blob、队列和表以及服务总线一起使用。绑定系统使编写使用 BCL 类型读取或写入 Microsoft Azure 存储对象的代码变得容易。每当队列或 Blob 中接收到任何新数据时,触发器系统都会调用代码中的函数。

SDK 还提供了丰富的诊断和监控体验,无需开发人员编写任何诊断和日志记录代码。

现在我们有针对特定系统的触发器,例如上面提到的那些,但是您可以自己编写更多的触发器和绑定。我们将在此场景的基础上构建,并在未来提供丰富的可扩展性故事,以便您可以为自己的系统/场景(如 SqlServer 等)编写触发器。

不必使用 Azure 存储的情况示例如下。这个原型展示了一个 FileWatcher,它展示了当在目录中检测到新文件时如何触发函数。 https://github.com/rustd/WebJobsSDKSamples/tree/master/FileWatcher

您还可以使用 JobHost.RunOnBackgroundThread 或 JobHost.Call() 在后台处理任何内容。SDK 将为您提供日志记录的好处,管理这些函数的执行,例如如果这些函数长时间运行并且永远不会完成,则取消这些函数,而无需终止进程。我们即将添加异步支持,以便您的函数也可以返回 Task。

您可以在 WebJobs 中使用 SDK。WebJobs 平台为您提供流程管理,例如启动/停止 WebJob 以及其他好处,例如扩展 WebJob 等等。

正如您所提到的,如果您只是上传独立的 EXE,您将无法获得函数详细信息和日志记录的那么多可见性。

于 2014-08-12T16:39:59.803 回答
2

要使用 Azure 网站 WebJobs 功能,您不必使用 WebJobs SDK。

WebJobs SDK 当前支持 Azure 存储队列、blob、表和 Azure 服务总线队列,如果您不需要其中任何一个,则不需要使用它。

于 2014-08-12T01:40:37.817 回答
1

WebJobs SDK 不仅是触发器(存储和服务总线)。即使您不使用触发器,WebJobs 仪表板也非常有价值 - 您可以获得一些强大的诊断信息,并且可以更好地调试您的生产系统。

于 2014-08-12T15:27:13.643 回答