joh*_*rdy 5 servicebus azure azureservicebus azure-webjobs azure-webjobssdk
我一直在使用Azure存储队列来使用该QueueTrigger属性来提供WebJob .我将我配置QueueTrigger为出列并发处理多个项目,如下所示:
public static void Main()
{
JobHostConfiguration config = new JobHostConfiguration();
config.NameResolver = new QueueNameResolver();
config.Queues.NewBatchThreshold = 10;
JobHost host = new JobHost(config);
host.RunAndBlock();
}
public static void ExecuteStorageQueueItem([QueueTrigger("%AzureQueueName%")] CloudQueueMessage message, TextWriter logger)
{
ProcessRequest(message.AsString, logger);
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用Service Bus.MaxConcurrentCalls参数on 是否ServiceBusConfiguration允许相同的自动并行执行?例如:
public static void Main()
{
JobHostConfiguration config = new JobHostConfiguration();
config.NameResolver = new QueueNameResolver();
ServiceBusConfiguration serviceBusConfig = new ServiceBusConfiguration();
serviceBusConfig.MessageOptions.MaxConcurrentCalls = 10;
config.UseServiceBus(serviceBusConfig);
JobHost host = new JobHost(config);
host.RunAndBlock();
}
public static void ExecuteServiceBusItem([ServiceBusTrigger("%ServiceBusQueueName%")] BrokeredMessage message, TextWriter logger)
{
ProcessRequest(message.GetBody<string>(), logger);
}
Run Code Online (Sandbox Code Playgroud)
我不确定MaxConcurrentCalls我认为它是否做到了!
本质上是的,MaxConcurrentCalls定义了客户端用来处理队列的线程数量。
当QueueClient.OnMessage方法被调用时,它会在不断轮询的无限循环上启动消息泵。设置消息泵应启动的回调并发调用OnMessageOptions.MaxConcurrentCall数。
更多背景故事:介绍 Windows Azure 服务总线的事件驱动消息编程模型
| 归档时间: |
|
| 查看次数: |
2183 次 |
| 最近记录: |