如何在运行时设置Azure WebJob队列名称?

2024-03-03

我正在开发一个 Azure WebJobs 可执行文件,我想将其与多个 Azure 网站一起使用。每个网站都需要自己的 Azure 存储队列。

我看到的问题是ProcessQueueMessage要求将队列名称静态定义为第一个参数的属性inputText。我宁愿让队列名称成为正在运行的 Azure 网站实例的配置属性,并让作业可执行文件在启动时在运行时读取该名称。

有什么办法可以做到这一点吗?


现在可以做到这一点。只需创建一个INameResolver允许您解析 %(百分号)符号包围的任何字符串。例如,如果这是您指定了队列名称的函数:

public static void WriteLog([QueueTrigger("%logqueue%")] string logMessage)
{
    Console.WriteLine(logMessage);
}

注意字符串周围有 %(百分号)符号logqueue。这意味着作业系统将尝试使用INameResolver您可以创建它,然后将其注册到您的工作中。

以下是解析器的示例,它仅采用百分号中指定的字符串并在配置文件的 AppSettings 中查找它:

public class QueueNameResolver : INameResolver
{
    public string Resolve(string name)
    {
        return ConfigurationManager.AppSettings[name].ToString();
    }
}

然后在您的 Program.cs 文件中,您只需将其连接起来:

var host = new JobHost(new JobHostConfiguration
{
  NameResolver = new QueueNameResolver()
});
host.RunAndBlock();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在运行时设置Azure WebJob队列名称? 的相关文章

  • Visual Studio 2015 发布 WebJobs 问题

    在 VisualStudio 2015 中使用右键单击 发布为 Azure WebJob 选项 可以发布作业 但运行模式似乎被忽略 在我的文件中 我有以下设置 但是发布后该作业会在门户中不断设置为按需作业 schema http schem
  • Azure WebJobs SDK ServiceBus 连接字符串“AzureWebJobsAzureSBConnection”丢失或为空

    我在 Visual Studio 2015 中创建了一个 Azure Function App 该应用程序具有服务总线队列的触发器 当我在本地运行该应用程序时 它运行得很好 它能够从服务总线队列 通过名为 AzureSBConnection
  • Azure Webjobs 的命令行参数

    我正在将之前计划并通过 Quartz Net 运行的几个作业迁移到 Azure Webjobs 使用 Quartz Net 允许我在同一个项目中拥有所有 非常紧凑 的作业类 作为初始化调度程序的控制台程序入口点 现在我想保留该结构 而不必为
  • azure webapp webjob 节点版本

    如何定义用于运行 azure webjobs 的节点版本 服务器当前使用 v0 11 执行我的代码 但由于我使用需要节点 gt 8 的功能而失败 Web 应用程序本身在节点 8 上运行得很好 但 webjobs 的版本似乎独立于 Web 服
  • 异步启动长时间运行的进程

    在我们的 Web 应用程序中 用户可以进行需要更新大量数据库表的更改 所有这些的加载时间最长可达 30 秒 我不希望用户在导航到另一个页面之前等待该操作完成 我已将长时间运行的代码放在自己的页面上 例如 updateinfo aspx 并尝
  • 如何使用 vNext 在 VSO 中通过 CI 部署 Web 作业

    我正在尝试部署预定的webjob通过 CI 和vNext任务在VSO 我按照以下教程中的步骤部署了webjob与 Web 应用程序一起使用 使用 Web 项目启用自动部署 https azure microsoft com en us do
  • 使用 Node.js 从 Azure WebJob 轮询 Azure 服务总线队列

    尝试使用用 Node js 编写的 WebJob 轮询 Azure 服务总线队列 我创建了 2 个 WebJobs 第一个是按需的 并向队列发送 10 条唯一的消息 第二个作业是连续的 并轮询队列中的消息 遇到以下问题 轮询速度很慢 平均需
  • 发布为 Azure WebJob 在 VS 2013 中不起作用

    我正在尝试使用 Visual Studio 2013 发布一个 Azure 网站以及一些 azure webjobs 我正在关注本教程 我的解决方案具有以下结构 当我尝试将现有项目作为 Web 作业添加到我的 Web 项目中时 我在 项目名
  • Azure 如何启用完整的 WebJob 日志

    当我在 Windows Azure 中将控制台应用程序作为 WebJob 运行时 在几行日志之后它会添加一条警告 05 06 2014 09 42 40 gt 21026c WARN Reached maximum allowed outp
  • 可配置的计时器触发器 - Azure Web 作业

    我正在构建一项以固定间隔 例如 1 分钟 触发的工作 我已成功使用触发的网络作业 并在函数中硬编码了时间跨度 public void foo TimerTrigger 00 01 00 TimerInfo timer 现在 如果我想将触发时
  • Azure WebJob FileTrigger 路径“D:\home\data\...”不存在

    我创建了一个 WebJob 用于在创建 Azure 文件时读取文件 当我在本地运行它时 它可以工作 但当我发布 WebJob 时 它不能工作 我的 Main 函数是 static void Main string connection De
  • 预定的网络作业

    我正在创建一个新的 Azure WebJob 项目 它似乎是可以作为 Web 作业运行的控制台应用程序的优化版本 我希望这项工作根据时间表运行 但在Main 方法 见下文 微软为您提供了host RunAndBlock 使作业能够连续运行
  • 从 Visual Studio 2013 部署 Azure Webjobs 时未包含某些程序集

    我有一个 Visual Studio 2013 类库项目 目录结构如下 MyClassLibraryProject ExternalLibraries 3rdPartyLib dll bin Debug Release etc 在Exter
  • 如何为 Web 作业处理提供基于配置的队列名称?

    我有一个 webjob 应用程序来处理 ServiceBus 队列 它运行良好 使用以下方法 public static void ProcessQueueMessage ServiceBusTrigger myQueueName Brok
  • Azure WebJobs 发布错误

    我们部署了一个带有生产槽和开发槽的 Web 应用程序 我们创建了多个 Web 作业 连续的和计划的 并且我们希望手动部署它们 不链接到 Web 应用程序部署 因此我们遵循的流程部署是 1 gt 部署Web应用程序 2 gt 对于每个 Web
  • 通过 Git 部署的计划 Azure WebJob 导致按需作业

    我有一个支持 Git 的 ASP NET WebApp 以及一个关联的 Azure WebJob 当我通过 Visual Studio 部署它时 一切都很好 但这在持续交付环境中有点困难 所以我想通过 Git 发布 Web 应用程序和 We
  • ASP.NET Web 部署失败;项目中不存在 AddScheduledJob

    我有一个包含两个 WebJobs 的 ASP NET 项目 其中一个 WebJobs 可以正常发布 但第二个 WebJobs 无法发布 并且收到以下错误消息 项目中不存在目标 AddScheduledJob 两个 WebJobs 都设置为
  • 如何在Azure中创建或使用本地文件夹?

    我需要从 SFTP 服务器下载文件 下载的文件存储到本地文件夹 D Data tempData csv 我必须从本地文件读取数据并在我的应用程序中使用以进行其他数据操作 此作业是使用 Azure Web 作业中的 Web 挂钩计划程序创建的
  • 仅在 Azure Web 应用程序中从 FTP 下载文件失败

    我有一个非常基本的代码 可以从 FTP 服务器下载文本文件列表 foreach var fileUri in files try var ftpRequest FtpWebRequest FtpWebRequest Create fileU
  • Azure webjob - 队列处理功能的正常关闭

    我有一堆 webjob 队列处理函数 public static void ProcessSomething QueueTrigger testrequest TestThing thing TextWriter logger Cancel

随机推荐