【问题标题】:Azure Web Jobs architectureAzure Web 作业体系结构
【发布时间】:2016-10-07 12:24:35
【问题描述】:

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

【问题讨论】:

    标签: azure-webjobs


    【解决方案1】:

    Web Jobs 使用您的 Web 应用资源,为什么不试试 Azure Functions,它可以扩展,而且价格几乎为零。它们处于技术预览阶段,我尝试过使用它,Azure 功能非常便宜。如果您的服务总线调用可能是进程外服务,这意味着它不需要来自您的应用程序的实例结果,您可以尝试使用 azure 函数。 Azure 函数主要用于维护和夜间运行作业。我用它来将我的图像缩小为缩略图。效果很好

    【讨论】:

    • 是的,如果我写这篇文章时只有 Azure Functions,我会使用它的。 :)
    • 如果你看一下我在 Steeples 帖子上写的评论,它基本上是在描述 Azure Functions。我认为 Azure 或 AWS 的某个人阅读了该内容并创建了 Azure Functions 和 AWS Lambda。我完全相信。
    • 你可能是对的,dascalos。你真是个有远见的人!! :)
    • 我有点不同意声明中的 “他们的定价几乎为零” 部分。通过选择适合您需求的正确定价模型(如大多数 Azure 服务),可以轻松控制成本。是的,相比之下它是负担得起的。
    • 每月免费执行 100 万次,如果你有适当的微服务,那么你可以免费离开。每个 az 函数提供 100 万次免费执行
    【解决方案2】:

    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();
        }
    }
    

    【讨论】:

    • BatchSize 配置不适用于 ServiceBus 队列。我们正在跟踪这一点,我们可能会支持 ServiceBus 的并行执行,但目前 ServiceBus 触发的函数是按顺序运行的。
    • 别误会我的意思,我确实喜欢 WebJobs。它们适用于某些用例。我实际上将它们用于夜间数据导入。我想要的是另一种服务,它使用与 webjobs 类似的 sdk,但随着工作的到来,它会在可用计算资源池中生成进程并完成工作。如果我有足够的 cpus 产生,我不想担心。类似于工人角色,但更轻量级和更有弹性。我能得到一个阿门吗?我错过了一些存在的东西吗?
    • @dascalos 我认为这是个好主意。希望您不介意,但我已将其添加为 Azure Uservoice 上的反馈请求:feedback.azure.com/forums/34192--general-feedback/suggestions/…
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-06-14
      • 2015-08-06
      • 2012-03-28
      • 2019-04-10
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多