gpt4 book ai didi

visual-studio - 使用 Azure 中的 Web 应用程序使用多个部署使 Webjob 成为单例

转载 作者:行者123 更新时间:2023-12-03 00:58:46 29 4
gpt4 key购买 nike

使用 Azure WebApps,我知道我可以通过将 "is_singleton": true 添加到 WebJob settings.job 文件来使 WebJob 成为单例,如果例如,我在单个 WebApp 部署中有 3 个实例。

但是 - 我如何发布到两个 Web 应用程序(用例、两个不同的区域)并使 WebJob 作为单例运行并且仅在其中一个部署上运行。

<小时/>

所需行为的示例:

悉尼部署

  • 我的单例网络作业(正在运行)
  • 我处理队列的其他 WebJobs(正在运行)

新加坡部署

  • 我的 Singleton Webjob(未运行,或者甚至未部署?)
  • 我处理队列的其他 WebJobs(正在运行)
<小时/>

我知道我可以登录到 Azure 门户并在其中一个部署中禁用 Web 作业,但是我可以对 Visual Studio 中的发布配置文件进行转换或更改以自动实现所需的行为吗?

我目前正在使用 Visual Studio 2015 进行部署。

最佳答案

实际上,有一个非常方便的 Singleton 属性,在您的用例中可能很有用,take a look at this ,摘录如下;

The WebJobs SDK facilitates common distributed locking scenarios via its SingletonAttribute. You can simply apply SingletonAttribute to a job function to ensure that all invocations of that function will be serialized, even across scaled out instances.

[Singleton]
public static async Task ProcessImage([BlobTrigger("images")] Stream image)
{
// Process the image
}

还有一个示例说明如何将单例范围缩小到一个区域:

You can specify a scope expression/value on the Singleton which will ensure that all executions of the function at that scope will be serialized.

[Singleton("{Region}")]
public static async Task ProcessWorkItem([QueueTrigger("workitems")] WorkItem workItem)
{
// Process the work item
}

关于visual-studio - 使用 Azure 中的 Web 应用程序使用多个部署使 Webjob 成为单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32492515/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com