单个webjob中的许多触发器

时间:2018-12-27 12:05:37

标签: azure azure-webjobs azure-webjobs-triggered

  1. 在单个webjob中是否有许多触发器(blob,servicebus,timer)会降低webjob的性能?

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

  3. 可以将重量较重的webjob划分为重量较轻的webjob吗?

2 个答案:

答案 0 :(得分:0)

将Azure WebJobs作为Azure App Service的功能来运行后台作业,如下the offical document所述。

  

WebJobs是Azure App Service的一项功能,使您可以在与Web应用程序,API应用程序或移动应用程序相同的上下文中运行程序或脚本。使用WebJobs无需支付额外费用。

虽说no additional cost,但WebJob是一项简单而有用的功能,它是在Azure发布其他类似且功能更强大的服务(例如在下面的同一文档中引入“功能”)之前建立的。

  

Azure函数提供了另一种运行程序和脚本的方法。有关WebJob和功能之间的比较,请参见Choose between Flow, Logic Apps, Functions, and WebJobs

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

  

摘要

     

Azure Functions可提供更高的开发人员生产力,更多的编程语言选项,更多的开发环境选项,更多的Azure服务集成选项以及更多的定价选项。在大多数情况下,这是最佳选择。

     

在以下两种情况下,WebJobs可能是最佳选择:

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

对于要运行代码片段以集成Azure或第三方服务的其他方案,请选择带有WebJobs SDK的WebJobs上的Azure功能。

同时,根据我在Azure上的经验,WebJobs和Functions仅适合一些简单且轻量级的任务工作。对于高性能要求,Azure Batch service是在成本和易用性之间取得平衡的理想选择。

答案 1 :(得分:0)

1。单个webjob中是否有许多触发器(blob,servicebus,timer)会降低webjob的性能?  前提是您的网络作业不是单例。您可以在Webjob中使用多个触发器来具有多个功能,并且性能不会降低。 (只要您的webapp计划足以应付所有负载。)

2。是否有任何方法可以通过许多触发器来提高webjob的性能? - 最好的方法是将webjob分成较小的webjob,并且每个webjob都有一个触发器。并根据负载扩展您的webjobs(添加更多实例)。同样,如果您的Web作业在5分钟内执行,您还可以选择使用Azure Function App。这提供了一个更好的选择。或者,假设执行webjob的时间超过5分钟,则可以将webjob exe作为docker映像,并使用ACI按需使用逻辑应用程序进行配置。在这种情况下,您将在逻辑应用程序中配置触发器。

1。可以将较重的webjob划分为较小的webjob吗? -是的,请参阅我以前的答案。