我有一些代码需要在调用服务总线时运行。这个特殊的代码是CPU密集型的,并且可能需要同时运行其中的100个。 Azure Web Jobs是使用来自一台计算机的计算资源,还是使用来自多台计算机的任何可用计算资源?
答案 0 :(得分: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();
}
}
答案 1 :(得分:1)
网络工作使用您的网络应用资源,为什么不尝试 Azure Functions ,这可以缩放,价格几乎为零。他们在技术预览中我尝试过使用它,Azure功能非常便宜。如果您的服务总线调用可能是进程外服务,这意味着它不需要应用程序的实例结果,您可以尝试使用azure函数。 Azure功能主要用于维护和夜间运行作业。我用它来缩小我的图像缩略图。它工作得很好
答案 2 :(得分:0)
作为Azure WebSite的一部分部署的Web作业将与Web应用程序共享资源。如果需要并行性,您可以选择将网站扩展到10个(我认为?)实例。
正如我在Matthew帖子的评论中提到的,如果您使用Azure WebJobs SDK来获取ServiceBus队列消息触发的功能,我们不会将其并行化为同一主机的一部分。这意味着只要您拥有一台主机,就会按顺序处理邮件。