如何监听 2 个 ServiceBus 队列,每个队列具有不同的 MaxConcurrentCalls?

问题描述 投票:0回答:1

我使用

Microsoft.Azure.WebJobs.Extensions
Microsoft.Azure.WebJobs.Extensions.ServiceBus
制作了一个 WebJob 程序,它监听 AzureServiceBus 队列,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!");
}

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

c# azure azureservicebus
1个回答
0
投票

触发器设置在

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

© www.soinside.com 2019 - 2024. All rights reserved.