单个网络作业中有多个触发器


  1. 在一个web作业中有多个触发器(blob、servicebus、timer)会降低web作业的性能吗?

  2. 有没有什么方法可以通过许多触发器来提高webjob的性能?

  3. 重的网络作业可以分为轻的网络作业吗?

将Azure WebJobs视为Azure应用程序服务的一项功能,以运行后台作业,如以下官方文档所述。

WebJobs是Azure应用程序服务的一项功能,使您能够在与web应用程序、API应用程序或移动应用程序相同的上下文中运行程序或脚本。使用WebJobs不需要额外费用。

尽管它说no additional cost,但WebJob作为一个简单而有用的功能是在Azure发布其他类似且更强大的服务之前创建的,这些服务如函数将在下面的同一文档中介绍。

Azure函数提供了另一种运行程序和脚本的方式。有关WebJobs和Functions之间的比较,请参阅在Flow、Logic Apps、Functions和WebJobs之间进行选择。

在上面的参考文档中,Summary部分推荐了其最佳应用场景。

摘要

Azure功能提供了更高的开发人员生产力、更多的编程语言选项、更多的开发环境选项、更多Azure服务集成选项和更多的定价选项。对于大多数情况,这是最好的选择。

以下是WebJobs可能是最佳选择的两种场景:

  • 您需要对侦听事件的代码JobHost对象进行更多控制。函数提供了有限的方法来自定义host.json文件中的JobHost行为。有时您需要做一些JSON文件中的字符串无法指定的事情。例如,只有WebJobs SDK允许您为Azure存储配置自定义重试策略
  • 你有一个应用服务应用程序,你想为它运行代码片段,并且你想在同一个DevOps环境中一起管理它们

对于要运行代码片段以集成Azure或第三方服务的其他场景,请使用WebJobs SDK选择Azure功能而非WebJobs。

同时,根据我在Azure上的经验,WebJobs和Functions只适用于一些简单而轻量级的任务工作。对于高性能要求,Azure批处理服务是一个很好的选择,可以在成本和易用性之间取得平衡。

1。在一个网络作业中有许多触发器(blob、servicebus、timer)会降低网络作业的性能吗前提是你的网络作业不是单例的。您可以在具有多个触发器的网络作业中具有多个功能,并且性能不会降低。(前提是你的网络应用程序计划足够强大,可以处理所有负载。)

2.有什么方法可以提高具有许多触发器的webjob的性能吗-最好的方法是将网络作业划分为较小的网络作业,每个网络作业都有一个触发器。并根据负载扩展您的网络作业(添加更多实例)。此外,如果你的网络作业在5分钟内执行,你也可以选择使用Azure功能应用程序。这提供了一个更好的选择。或者,假设网络作业执行需要5分钟以上,您可以将您的网络作业exe作为docker映像,并使用ACI按需使用逻辑应用程序进行配置。在这个场景中,您将在逻辑应用程序中配置触发器。

1.权重较大的网络作业可以分为权重较小的网络作业吗-是的,请参阅我以前的回答。

相关内容

最新更新