【问题标题】:Scale out azure continuous webjob横向扩展 azure 连续网络作业
【发布时间】:2018-06-08 14:44:01
【问题描述】:

我正在尝试扩展一个连续的网络作业。我的服务计划是按标准设置的,因此我可以扩展 10 个实例。问题是 webjob 没有横向扩展,并且在任何时候都只有一个在运行。

实例数:

功能:

功能代码:

【问题讨论】:

  • 请将代码包含为文本而不是屏幕截图

标签: azure scale out webjob


【解决方案1】:

根据这个article,我们可以找到原因,请参考。

在幕后,TimerTrigger 使用 WebJobs SDK 的 Singleton 功能来确保在任何给定时间只有一个触发函数实例在运行。当 JobHost 启动时,每个 TimerTrigger 函数都会使用一个 blob 租约(单例锁)。这种分布式锁确保在任何时候都只有一个调度函数的实例在运行。

【讨论】:

    【解决方案2】:

    我会使用连续 WebJob 而不是 TimerTriggerTimerTrigger 表示作业不是连续的)。您必须从代码中删除 TimerTrigger

    默认情况下,Continuous WebJob 将在所有可用实例上执行。

    在 WebJob 代码中,您必须注意消息已正确锁定并完成以避免并发问题。

    Peek() 方法不太适合并行处理,因为消息没有锁定或完成,它不关心其他锁。使用Receive() 或基于事件的RegisterMessageHandler() 模式。

    以下是一些相关文档:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2021-05-08
      • 2018-01-12
      • 2018-04-28
      • 1970-01-01
      • 2014-09-21
      • 2019-07-16
      相关资源
      最近更新 更多