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

ctzwtxfj  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(178)

我使用Microsoft.Azure.WebJobs.ExtensionsMicrosoft.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。由于微软的文档中没有更新文档,而且这个库有点旧,我不知道如何配置这两个队列。也许我应该用另一个lib。或者有办法做到这一点吗?

yzuktlbb

yzuktlbb1#

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

相关问题