В настоящее время я пытаюсь оптимизировать некоторый унаследованный код пакетной обработки в веб-задании. Меня беспокоит линия config.Queues.BatchSize = 5;
. Я не эксперт по Azure, поэтому перед тем, как спросить, я прочитал об этом достаточно много. Мой вывод следующий: config.Queues.BatchSize
используется для настройки очередей, как показано здесь , что означает, что это вообще не должно влиять на веб-задание. Вы можете увидеть код инициализации ниже:
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
(который я изменил в своем локальном коде). Однако, отслеживая вывод консоли, я изо всех сил пытаюсь понять, действительно ли конфигурация очереди влияет на веб-задание.
Стоит ли ожидать, что config.Queues.BatchSize = 5;
изменит способ вызова функции обработки этого веб-задания?