【发布时间】:2016-10-07 12:24:35
【问题描述】:
由于调用服务总线,我有一些代码需要运行。这个特定的代码是 CPU 密集型的,可能需要同时运行 100 个这样的代码。 Azure Web Jobs 是使用一台机器的计算资源,还是使用多台机器的任何可用计算资源?
【问题讨论】:
标签: azure-webjobs
由于调用服务总线,我有一些代码需要运行。这个特定的代码是 CPU 密集型的,可能需要同时运行 100 个这样的代码。 Azure Web Jobs 是使用一台机器的计算资源,还是使用多台机器的任何可用计算资源?
【问题讨论】:
标签: azure-webjobs
Web Jobs 使用您的 Web 应用资源,为什么不试试 Azure Functions,它可以扩展,而且价格几乎为零。它们处于技术预览阶段,我尝试过使用它,Azure 功能非常便宜。如果您的服务总线调用可能是进程外服务,这意味着它不需要来自您的应用程序的实例结果,您可以尝试使用 azure 函数。 Azure 函数主要用于维护和夜间运行作业。我用它来将我的图像缩小为缩略图。效果很好
【讨论】:
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();
}
}
【讨论】:
部署为 Azure 网站一部分的 Web 作业将与 Web 应用程序共享资源。如果您需要并行性,您可以选择将网站扩展到 10 个(我认为?)实例。
正如我在对 Matthew 的帖子的评论中提到的,如果您使用 Azure WebJobs SDK 具有由 ServiceBus 队列消息触发的功能,我们不会作为同一主机的一部分进行并行化。这意味着只要您有一个主机,就会按顺序处理消息。
【讨论】: