.net - Azure WebJobs SDK 是否专门用于使用 Azure 存储?

标签 .net visual-studio azure azure-webjobs azure-webjobssdk

Azure WebJobs SDK 的所有文档(例如 http://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-get-started/ )和示例项目都涉及到 Azure 存储(表、博客和队列)的 Hook 和绑定(bind)。我有兴趣将 WebJobs 用于与这些存储机制无关的功能,例如运行计算、调用服务或将它们与 WebJobs SDK 没有 Hook 的其他存储服务一起使用。在这些情况下,使用 WebJobs SDK 有任何值(value)吗?我的印象(也许是不正确的)是,sdk 为您提供了许多其他好处来管理作业本身的执行,例如控制在单线程中阻塞运行与在后台运行等,也许与以下相关的操作 Hook 启动和停止作业,以及一些与 Visual Studio 的 Hook 等。我知道我可以上传独立的 EXE 和脚本文件并将它们作为 WebJobs 运行,但我进一步认为以这种方式运行更加不透明,并且使您对作业的可见性较低执行以及提供较少的编程能力来控制它们。

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

最佳答案

以下是一些更多详细信息,希望能回答您的问题。

WebJobs SDK 具有绑定(bind)和触发系统,可与 Microsoft Azure 存储 Blob、队列和表以及服务总线配合使用。通过绑定(bind)系统,可以轻松编写使用 BCL 类型读取或写入 Microsoft Azure 存储对象的代码。每当队列或 Blob 中收到任何新数据时,触发系统都会调用代码中的函数。

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

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

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

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

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

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

关于.net - Azure WebJobs SDK 是否专门用于使用 Azure 存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25252226/

相关文章:

c# - 使用正则表达式返回数组/列表

c# - 仅垂直折叠文本框 - 如果它被隐藏,则获取实际高度

azure - 非常大的 Microsoft.OSTCExtensions - LinuxDiagnostic 扩展日志

azure - 避免在 session 中存储不同 SQL 模式的连接字符串

c# - 检查对象是否实例化

.net - Windows Mobile 开发的最佳可用在线资源是什么?

c++ - 查找预编译头文件时跳过

visual-studio - VS 2008 相对于 VS 2005 的优势

visual-studio - Visual Studio 2013 Update 5 需要永远安装/卸载

azure - 交换 Azure Web 应用程序部署槽时,并非所有流量都会进入生产环境