工作者angular色与Web作业

根据我的理解,这两个在云中运行的可重复的小任务。

什么原因,在什么情况下我可以select一个吗?

一些基本信息:

WebJobs适合轻量级工作项目,不需要对其运行的环境进行任何定制,也不会占用太多资源。 它们对于只需要定期运行,计划或触发的任务也非常有用。 他们便宜,易于安装/运行。 他们在您的网站上下文中运行,这意味着您获得与您的网站运行相同的环境,并且他们使用的任何资源都是您的网站无法使用的资源。

辅助angular色对于更多资源密集型工作负载或者需要修改正在运行的环境(即特定的.NET框架版本或安装到操作系统中的某个环境)是有利的。 工人angular色更昂贵,安装和运行也更难,但是他们提供了更多的权力。

一般来说,我将从WebJobs开始,然后转到Worker Roles,如果您发现您的工作负载需要的不仅仅是WebJobs可以提供的。

如果我们要测量“功率”作为计算能力,那么在虚拟环境中,这意味着在物理机器(金属)的顶部有多less层。 虚拟机上的用户代码运行在pipe理物理机器的pipe理程序之上。 这是最厚的一层。 pipe理程序尽可能只是简单地作为金属的传递。

WebJobs基本上没有什么开销。 它是沙盒,操作系统维护,并有服务和模块,以确保它运行。 但是应用程序代码与Worker Roles基本上是相似的,因为它们使用相同的pipe理程序。

如果你想测量的是“灵活性”,那么使用工作者angular色,因为它不被pipe理或沙箱化,所以更灵活。 你可以使用更多的套接字,定义你自己的环境,安装更多的包等。

如果你想要的是“function”,那么WebJobs有一个完整的function。 包括虚拟networking到本地资源,分段环境,远程debugging,触发,调度,容易连接到存储和服务总线等。

大多数人希望专注于解决他们的问题,而不是投入时间在基础设施上。 为此,您使用WebJobs。 如果您发现需要更大的灵活性,或者安全沙箱阻止您执行任何其他方式无法完成的操作,请转到工作angular色。

甚至有可能构build混合解决scheme,其中一些部分是在WebJobs中完成的,而另外一些是在Worker Roles中完成的,但这不在这个问题的范围之内。 (提示:WebJobs SDK)

在select使用Web作业或工作者angular色时要记住的一些事情:

  • 工作者angular色自己托pipe在专用的虚拟机上,Web作业托pipe在Web应用程序容器中。

  • 工作者angular色将独立扩展,Web作业将随Web应用程序容器一起缩放。

Web Jobs是轮询RSS Feed,检查和处理消息以及发送通知的理想之选,它们比Workerangular色更轻便,更便宜,但function更强大。