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

2024-03-11

使用 Azure WebApps,我知道我可以通过添加以下内容使 WebJob 成为单例"is_singleton": true到网络作业settings.job例如,如果我在单个 WebApp 部署中有 3 个实例,那么这非常有用。

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


期望行为的示例:

悉尼部署

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

新加坡部署

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

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

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


实际上,有一个非常方便的 Singleton 属性,在您的用例中可能很有用,看看这个 https://github.com/Azure/azure-webjobs-sdk/wiki/Singleton,摘录如下;

WebJobs SDK 通过其 SingletonAttribute 促进常见的分布式锁定场景。您可以简单地将 SingletonAttribute 应用于作业函数,以确保该函数的所有调用都将被序列化,即使跨扩展的实例也是如此。

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

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

您可以在单例上指定范围表达式/值,这将确保该范围内函数的所有执行都将被序列化。

[Singleton("{Region}")]
public static async Task ProcessWorkItem([QueueTrigger("workitems")] WorkItem workItem)
{
     // Process the work item
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Azure 中的 Web 应用程序使用多个部署使 Webjob 成为单例 的相关文章

  • 在 Blazor 中以编程方式注册页面,而不是使用 LazyAssemblyLoader 使用 @page 指令

    目前我加载程序集OnNavigateAsync包含带有 page 指令的 Razor 页面的事件 例如 page extrapage 并且工作正常 例如 我想以编程方式声明路由页面 而不声明 page并且 代替这个 使用Dictionary
  • 计算 .NET Core 项目的代码指标?

    我正在研究 ASP NET Core 和 NET Core 项目 对于经典的 C 项目 Visual Studio 2015 具有计算代码指标的功能 对于 NET Core 预览版 2 工具中缺少支持 在工具更加完整之前 有人知道解决方法吗
  • vcproj/vsprops 的可选环境变量

    有没有办法在项目文件 有或没有 vsprops 中进行环境变量替换 如果找不到该变量 则用默认值替换 我还没有找到任何方法来做到这一点 因为一切似乎都会覆盖环境变量 编辑 我需要它为属性工作 而不是为环境变量工作 具体来说 可以使用指定目标
  • Visual Studio 2010 在程序结束后退出

    我正在通过编译 C 程序来尝试 Visual Studio 2010 在 DOS 命令窗口中显示解决方案后 该窗口立即关闭 在 Visual Studio 2008 中 用户会收到按任意键继续的消息 并按任意键关闭命令提示符窗口 我如何在
  • Azure 应用服务 API 应用程序的访问安全性

    我们有一个基于 2 层的系统 即后端层和前端层 现在两者都是通过 WebAPI 进行通信的 Azure 网站 我不想将后端 WebAPI 移至 API 应用程序 问题是 是否可以以这种方式配置 API 应用程序的安全性 那就是only可从配
  • 如何在命令行中使用 Visual Studio 编译 x64 代码?

    我想使用 Windows 命令行编译一个简单的 hello world 风格的程序 cl file name c 很容易 现在我想在 64 位中做同样的事情 我应该怎么办 您需要使用发出 x64 代码的 cl exe 编译器版本 哪一个有点
  • Visual Studio 2013删除已删除的git分支

    我遇到这个问题 在 VS2013 中 当我从源创建一个新分支时 源分支的下拉列表列出了曾经创建的所有分支 这包括长期从本地存储库和远程 源存储库中删除的分支 如何删除已删除的分支 Visual Studio 将它们保存在本地缓存中 您可以从
  • 字符串到数组,按第三个字/列排序

    我有一个包含数字 单词和换行符的字符串 我将其拆分为一个数组 如果我跑Array Sort lines 它将按第 1 列对数组进行数字排序 Number 我怎样才能按第 3 列的字母顺序对数组进行排序 Color 注意 它们不是真正的列 只
  • 我如何在 Visual Studio 2012 中同时构建项目(dll 和 lib)

    我设法在 dll 模式和库模式下设置构建项目 但不能同时设置 对于构建在 dll 中 项目 gt 属性 gt 配置类型 动态库 dll 项目 gt 属性 gt 目标扩展名 dll 对于内置库 项目 gt 属性 gt 配置类型 静态库 lib
  • 如何从 powershell 中设置 bash 的环境变量?

    使用powershell我该如何设置 https askubuntu com q 1205227 45156 the 环境 https stackoverflow com q 5327495 262852变量 这里 特别 https sta
  • 使用VS2019创建WebService

    我想使用 Visual Studio 2019 使用 C 在现有 NET 项目中创建 WebService 在互联网上搜索 我能找到的只是旧 VS 版本的教程 如何创建它 使用 Visual Studio 2019 接收 POST 数据的最
  • 为什么代码分析不警告 NotImplementedException?

    我非常确定 Visual Studio Code Analysis 的早期版本会警告有关 NotImplementedException 的使用 即包含此异常的任何成员 throw new NotImplementedException 会
  • 要发布哪些运行时库?

    我使用 Visual Studio 2008 进行 C C 工作 我相信我并不关心我的代码使用了哪些运行时库 因为我有开发人员设置 但是 当交付可执行文件时 所使用的运行时库也需要一起交付 我对吗 如果是 我如何确定实际使用了哪些共享库 或
  • 安装特定版本的 Visual Studio 2017

    I have trouble installing a specific version of Visual Studio 2017 Microsoft released the new Update 3 Version 15 3 1 an
  • 引用 dll 路径的区域内的此注释的目的是什么? (系统.操作)

    如果我浏览到 VS 中 System Action 的定义 region Assembly mscorlib dll v2 0 50727 C Windows Microsoft NET Framework v2 0 50727 mscor
  • 如何调用向导来添加新的项目模板

    我有一个通过向导生成的项目模板 现在我想通过同一个向导添加一个新的项目模板 添加新项目模板时如何调用向导 Example Add to Project Template Wizard Form Add the new Item Templa
  • 关闭文件后未保存展开/折叠状态

    在 Visual Studio 中 您可以在不使用区域的情况下展开和折叠代码 例如在代码隐藏页面中您可以折叠方法等 而在 ASPX 页面中您可以折叠标签 标签等 当您的页面很长并且您希望将开发重点放在特定部分时 它非常有用 它的一个很酷的地
  • VS2010 RC - 调试器中只有 100 个 std::map 元素

    当我想查看 std map 容器的所有元素时 在 VS 2010 RC 中调试我的应用程序时遇到一个小问题 当调试器到达断点并且我想检查元素检查器中的映射值 在 本地 窗口中以及用鼠标悬停变量名称后的弹出窗口中 并且我正在向下滚动列表元素它
  • 在 Visual Studio 2013 中更改 TFS 源代码管理映射

    我有多个先前映射到托管 TFS 的解决方案 他们的本地映射也已定义 并且所有源代码都是本地最新的 此后我停止了 TFS 订阅并开始使用 Visualstudio com 作为我的 TFS 服务器 我进入其中一个解决方案 从解决方案中删除 v
  • 有什么方法可以设置每个解决方案的颜色选项(VS2010)?

    有没有办法配置VS2010为不同的解决方案使用不同的配色方案 在 20 世纪 90 年代的 Macintosh 上 我可以将 wctb 资源添加到文档中 以便它们可以使用不同的配色方案打开 这样可以更轻松地找到要单击的正确窗口 并且还有助于

随机推荐