2014-09-13 66 views
5

我有一些代码需要运行,因为调用服务总线。这个特定的代码是CPU密集型的,可能有100个这样的代码需要同时运行。 Azure Web Jobs是否使用一台计算机的计算资源,还是使用来自多台计算机的任何可用计算资源?Azure Web Jobs架构

回答

1

网络招聘使用您的网络应用程序资源,为什么不尝试Azure Functions哪些可以缩放和定价几乎为零。他们在我尝试使用它的技术预览中,Azure功能非常便宜。如果您的服务总线呼叫可能不在服务过程中,这意味着您的应用程序不需要实例结果,您可以尝试天蓝色的功能。 Azure功能主要用于维护和夜间运行作业。我用它将我的图像缩小为缩略图。它工作得很好

+0

是的,如果在我写这篇文章时只有Azure函数存在,我会用它。 :) – dascalos 2016-10-14 13:46:19

+0

如果你看看我在Steeples发表的评论,它基本上描述了Azure函数。我认为有人在Azure或AWS上阅读并创建了Azure函数和AWS Lambda。我充分信任。 – dascalos 2016-10-14 13:49:19

+0

你可能是对的,dascalos。你是一个真正有远见的人! :) – 2016-10-31 04:12:29

1

Azure Webjobs旨在运行在尽可能多的服务器上,因为您已经扩大了网站的运行范围。默认情况下,它将同时运行多达16个任务,但可以按照here所示进行配置。

public class Program 
{ 
    static void Main() 
    { 
     JobHostConfiguration config = new JobHostConfiguration(); 
     config.Queues.BatchSize= 1; 
     JobHost host = new JobHost(config); 
     host.RunAndBlock(); 
    } 
} 
+0

BatchSize配置不适用于ServiceBus队列。我们正在跟踪这一点,我们可能会支持ServiceBus的并行执行,但现在ServiceBus触发的函数将按顺序运行。 – 2014-09-13 17:12:00

+1

不要误解我的意思,我喜欢WebJobs。它们对于某些用例非常有用。我实际上使用它们进行夜间数据导入。我所喜欢的是另一种使用类似sdk的webjobs服务,但随着工作的进行,它会产生可用计算资源池中的进程并完成工作。我不想担心,如果我有足够的cpu产生。类似于工作者角色,但更轻量且更具弹性。我可以得到阿门吗?我是否缺少存在的东西? – dascalos 2014-09-15 15:16:04

+0

@dascalos我认为这是一个好主意。我希望你不介意,但我已经将它作为Azure Uservoice的反馈请求添加了:http://feedback.azure.com/forums/34192--general-feedback/suggestions/6440654-allow-webjobs-to -scale-dynamic-and-independent – 2014-09-15 16:49:42

0

作为Azure网站一部分部署的Web作业将与Web应用程序共享资源。如果您需要并行性,您可以选择将网站扩展到10个(我认为?)实例。

正如我在Matthew的帖子的评论中所提到的,如果您使用Azure WebJobs SDK使功能由ServiceBus队列消息触发,我们不会并行化为同一主机的一部分。这意味着只要您有一台主机,就会按顺序处理消息。