c# - 如何监听两个具有不同 MaxConcurrentCalls 的 ServiceBus 队列?

标签 c# azure azureservicebus

我使用 Microsoft.Azure.WebJobs.ExtensionsMicrosoft.Azure.WebJobs.Extensions.ServiceBus 创建了一个 WebJob 程序,该程序使用 Microsoft.Azure.WebJobs.Extensions 监听 AzureServiceBus 队列strong>MaxConcurrentCalls 为 3。

主机配置:

public static void Main(string[] args)
{
    CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .UseSerilog()
        .ConfigureServices((hostContext, services) =>
        {
            startup.ConfigureServices(services, hostContext.Configuration);
        }).ConfigureWebJobs((hostContext, webJobsBuilder) =>
        {
            webJobsBuilder
                .AddAzureStorageBlobs()
                .AddServiceBus(options =>
                    {
                        options.AutoCompleteMessages = true;
                        options.MaxAutoLockRenewalDuration = TimeSpan.FromHours(1);
                        options.MaxConcurrentCalls = 3;
                    }
                );
        });

处理程序:

public async Task MyQueueHandle1([ServiceBusTrigger("myqueue1")] string message)
{
    _log.Info("this queue was triggered!");
}

现在我添加了具有相同连接字符串的第二个队列,但我想将最后一个队列的 MaxConcurrentCalls 设置为 10。由于微软的文档中的文档没有更新,而且这个库有点旧,我不知道如何配置这2个队列。也许我应该使用另一个库?或者有什么办法可以做到这一点?

最佳答案

触发器设置在 host.json 中定义,并由 Functions 应用程序中的所有函数共享。如果您需要对第二个队列进行不同的设置,则需要将其部署为不同的 Functions 应用。

关于c# - 如何监听两个具有不同 MaxConcurrentCalls 的 ServiceBus 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76186134/

相关文章:

c# - 如何在 Rider 中启用拼写检查?

c# - 从同一列检索多个值的有效方法

c# - 在目录中查询完整的文件(不是正在进行的复制)

azure - DocumentDb 上的文档未被替换

c# - Azure Active Directory OpenID 在 Web 浏览器中引发随机数异常,但不在 Web 浏览器控件中引发异常

wcf - 为什么使用 NetMessagingBinding 监听 Azure 服务总线队列的服务可能会停止接收消息?

azure - 触发多个并发服务总线触发azure功能,不会造成时间退化

c# - Azure 服务总线发布/订阅到多个 azure Web 应用实例

c# - HtmlControl 更改类

api - 授权 Azure AD 应用程序访问 RateCard API