应用服务中有几个选项。我不会涉及逻辑应用程序或 Azure 自动化,它们也涉及这个领域。
Azure 网络作业
本文 https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/老实说,这是最好的解释,但我会在这里总结一下。
按需 WebJobs 又名。预定的 WebJobs 又名。触发式 Web 作业
触发式 Web 作业是在调用 URL 或调用 URL 时运行一次的 Web 作业Schedule 属性存在于 Schedule.job 中 https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/#CreateScheduledCRON。计划的 WebJobs 只是创建了 Azure 计划程序作业以按计划调用我们的 URL 的 WebJobs,但我们也支持计划属性,如前所述。
Summary:
-
+
按需执行/脚本
-
+
预定执行
-
-
必须通过 .scm 端点触发
-
-
缩放是手动的
-
-
虚拟机始终是必需的
连续 WebJobs(非 SDK)
这些作业会永远运行,当它们崩溃时我们会唤醒它们。您需要启用“始终开启”才能使它们正常工作,这意味着在基本层及以上层运行它们。
Summary:
-
+
可执行文件/脚本始终运行
-
-
需要始终开启 - 基本层及以上
-
-
虚拟机始终是必需的
使用 WebJobs SDK 进行连续 WebJobs
从“WebJobs 功能”的角度来看,这些都不算什么。本质上,我们有这个针对 WebJobs 编写的甜蜜 SDK,它可以让您基于简单的触发器执行代码。稍后我会详细讨论这个问题。
Summary:
-
+
可执行文件/脚本始终运行
-
+
更丰富的日志记录/仪表板
-
+
支持触发器以及长时间运行的任务
-
-
需要始终开启 - 基本层及以上
-
-
缩放比例需要手动设置
-
-
开始使用可能会有点烦人
-
-
虚拟机始终是必需的
Azure Web 作业 SDK
Azure WebJobs SDK 是与 WebJobs 平台功能完全独立的 SDK。它被设计为在 WebJob 中运行,但实际上可以在任何地方运行。我们的客户在工作人员角色上运行它们,甚至在本地或其他云上运行它们,尽管支持只是尽力而为。
SDK 只是为了方便地运行一些代码来响应某些事件并绑定到服务等。简单的。老实说,这在一些内容中得到了最好的介绍docs https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-get-started/,但其核心在于“事件”+“代码”本质。我们还做了一些很酷的可扩展性工作,但这对于核心目的来说是次要的。
Summary:
- 大部分都是上面提到的
-
+
您可以扩展并运行任何您想要的内容。完全控制。
-
-
HTTP 的东西有点奇怪,但它确实有效
Azure 函数
Azure Functions 就是为了实现 WebJobs SDK 的核心目的,将其作为服务托管,并使其他语言的入门变得轻松。我们还在这里引入了“无服务器”概念,因为这样做很有意义 - 我们知道我们的 SDK 如何扩展,因此我们可以为您做智能的事情。
Azure Functions 是一种管理严格的体验。我们不支持自带主机。目前,我们不支持自定义扩展,但我们正在调查这一点。我们对你能做什么和不能做什么有自己的看法,但对于我们支持的事情,它们很灵活,并且易于使用和管理。
不过,我们为改进 Functions 所做的大部分“框架”工作都是通过 WebJobs SDK 进行的。例如,我们将上传一个新的用于 WebJobs 的 NuGet,这确实大大提高了日志记录的速度,这对 WebJobs SDK 用户来说具有巨大的性能优势。在将 Functions 作为“WebJobs SDK 即服务”提供时,我们确实改善了很多体验问题。
-
+
支持多种语言
-
+
完全托管、动态扩展
-
+
易于使用的门户,带有用户体验,用于管理连接等。
-
-
主机不可定制(尚)
-
~
在单独的“应用程序”中运行,需要在存储库中进行一些配置,但使长期维护变得更加容易。
-
~
还没有工具 一些工具现在处于 alpha 或预览阶段 -https://www.npmjs.com/package/azurefunctions https://www.npmjs.com/package/azurefunctions(2017 年 2 月更新:
Visual Studio Tools for Azure Functions 现已提供预览版:https://blogs.msdn.microsoft.com/webdev/2016/12/01/visual-studio-tools-for-azure-functions/ https://blogs.msdn.microsoft.com/webdev/2016/12/01/visual-studio-tools-for-azure-functions/)
我可能有偏见,因为 Functions 是我们最新、最好的,但请随意以我的方式拍摄更多 Functions 的缺点。
我可能最终会发布一个博客来详细说明一些内容,但我试图在这个论坛上尽可能保持简洁。