我使用 Microsoft.Azure.WebJobs.Extensions
和 Microsoft.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/