我使用
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个队列。也许我应该使用另一个库?或者有没有办法做到这一点?
触发器设置在
host.json
中定义,并由函数应用程序中的所有函数共享。如果您需要对第二个队列进行不同的设置,则需要将其部署为不同的 Functions 应用程序。