我目前正在尝试优化Webjob中一些继承的批处理代码。我关心的是config.Queues.BatchSize = 5;
行。我不是Azure专家,因此在询问之前我已经做了大量的阅读。我的结论如下:config.Queues.BatchSize
用于配置队列,如here所示,这意味着它根本不会影响webjob。您可以在下面看到初始化代码:
static void Main()
{
Console.WriteLine("Started...");
JobHostConfiguration config = new JobHostConfiguration()
{
NameResolver = new EventHubNameResolver(),
};
var options = EventProcessorOptions.DefaultOptions;
options.MaxBatchSize = 5;
var eventHubConfig = new EventHubConfiguration(options);
string eventHubName = ConfigurationManager.AppSettings["EventHubName"];
eventHubConfig.AddReceiver(eventHubName, ConfigurationManager.AppSettings["EventHubConnectionString"]);
config.UseEventHub(eventHubConfig);
config.Queues.BatchSize = 5;
JobHost host = new JobHost(config);
host.RunAndBlock();
}
当新项目到达EventHub时实际上被调用的函数是:
public static async Task ProcessData([EventHubTrigger("%EventHubName%")] string eventDataSet, TextWriter log)
{
...
}
我的第一个观察结果是,被调用函数中的第一个参数应为EventData[]
类型,而不是string
类型(在本地代码中已更改)。但是,在监视控制台输出时,我正在努力全面了解队列配置是否实际上影响了Webjob。
我应该期望config.Queues.BatchSize = 5;
更改此Webjob的处理函数的调用方式吗?