横向扩展时限制 azure webjob 的实例数
Limit number of instances of an azure webjob when scaling out
我想在我们的应用服务计划扩展时限制特定网络作业的实例数。
虽然我知道有一个 singleton instance 的可能性,但如果我们想将实例数量限制为 n,我找不到任何文档来提供帮助,其中 n 是一个大于 1 但小于应用服务计划中 总数 实例数的数字。例如,我们的应用程序服务计划可以扩展为 运行 4 个实例,但最多只允许其中 2 个实例成为 运行 给定的网络作业。
我(当然)知道我们可以有 2 个具有不同扩展规则的应用程序服务计划,但如果可能的话,我真的很想在现有计划中处理这个问题。
背景:
我们在应用服务计划中设置了 webapps 和 webjobs 运行,当 CPU 使用量超过特定阈值时自动扩展。
我们的网络作业 'background' 处理的任务 特别是 时间敏感但可能相当 cpu 密集。如果队列中有大量消息,这些 Web 作业可能会消耗几乎所有可用的 cpu 资源并导致大规模扩展。如果我们使用单例 webjob,那么即使在高峰时段,横向扩展也只会添加一个额外的实例,而其他一切仍然保持响应。这很好,除非 webjobs 花费太长时间来清除队列。我们真的希望能够更好地平衡这一点,以允许几个实例 运行 webjobs 允许稍微更快的处理时间,但避免将 cpu-intensive webjob 添加到第三个实例。
Azure Web App 支持按应用缩放。但它仅适用于高级 SKU 应用服务计划。按应用缩放独立于托管它的应用服务计划来缩放应用。这样,应用服务计划可以扩展到 10 个实例,但应用程序可以设置为仅使用五个。
对于您的问题,您可以创建一个新的网络应用来托管您的 WebJob。
关于per app scaling的使用方法,下面link供大家参考。
我想在我们的应用服务计划扩展时限制特定网络作业的实例数。
虽然我知道有一个 singleton instance 的可能性,但如果我们想将实例数量限制为 n,我找不到任何文档来提供帮助,其中 n 是一个大于 1 但小于应用服务计划中 总数 实例数的数字。例如,我们的应用程序服务计划可以扩展为 运行 4 个实例,但最多只允许其中 2 个实例成为 运行 给定的网络作业。
我(当然)知道我们可以有 2 个具有不同扩展规则的应用程序服务计划,但如果可能的话,我真的很想在现有计划中处理这个问题。
背景:
我们在应用服务计划中设置了 webapps 和 webjobs 运行,当 CPU 使用量超过特定阈值时自动扩展。
我们的网络作业 'background' 处理的任务 特别是 时间敏感但可能相当 cpu 密集。如果队列中有大量消息,这些 Web 作业可能会消耗几乎所有可用的 cpu 资源并导致大规模扩展。如果我们使用单例 webjob,那么即使在高峰时段,横向扩展也只会添加一个额外的实例,而其他一切仍然保持响应。这很好,除非 webjobs 花费太长时间来清除队列。我们真的希望能够更好地平衡这一点,以允许几个实例 运行 webjobs 允许稍微更快的处理时间,但避免将 cpu-intensive webjob 添加到第三个实例。
Azure Web App 支持按应用缩放。但它仅适用于高级 SKU 应用服务计划。按应用缩放独立于托管它的应用服务计划来缩放应用。这样,应用服务计划可以扩展到 10 个实例,但应用程序可以设置为仅使用五个。
对于您的问题,您可以创建一个新的网络应用来托管您的 WebJob。
关于per app scaling的使用方法,下面link供大家参考。