I am using Azure storage queues to feed WebJob using an attribute QueueTrigger. I am setting my own QueueTriggerto remove multiple elements for parallel processing, for example:
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);
}
I would rather use a service bus. Does parameter MaxConcurrentCallson ServiceBusConfigurationallow the same automatic parallel execution? For instance:
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);
}
I'm not sure if MaxConcurrentCallswhat I think is doing!
source
share