在最新的Microsoft.Azure.WebJobs.ServiceBus package,它使您能夠從eventhubs receive batches of messages。我想設置一批我想收到多少條消息。如何爲Azure函數EventHub偵聽器配置接收器批處理大小?
核心ServiceBus庫允許您超載Receive()
函數並提供batch size。
如何在initial config of an EventHubs receiver中做到這一點,或者是其他要求?
在最新的Microsoft.Azure.WebJobs.ServiceBus package,它使您能夠從eventhubs receive batches of messages。我想設置一批我想收到多少條消息。如何爲Azure函數EventHub偵聽器配置接收器批處理大小?
核心ServiceBus庫允許您超載Receive()
函數並提供batch size。
如何在initial config of an EventHubs receiver中做到這一點,或者是其他要求?
斯蒂芬,
的MaxBatchSize
可以通過EventProcessorOptions進行配置,你可以創建一個新的EventHubConfiguration時,把它作爲一個參數。
var options = EventProcessorOptions.DefaultOptions;
options.MaxBatchSize = 50;
var eventHubConfig = new EventHubConfiguration(options);
string eventHubName = "MyHubName";
eventHubConfig.AddSender(eventHubName, "Endpoint=sb://test.servicebus.windows.net/;SharedAccessKeyName=SendRule;SharedAccessKey=xxxxxxxx");
eventHubConfig.AddReceiver(eventHubName, "Endpoint=sb://test.servicebus.windows.net/;SharedAccessKeyName=ReceiveRule;SharedAccessKey=yyyyyyy");
config.UseEventHub(eventHubConfig);
JobHost host = new JobHost(config);
正如你可以在EventHubConfiguration.cs源代碼,如果沒有指定EventProcessorOptions
公告,MaxBatchSize
設置爲1000
,而不是10
默認。
public EventHubConfiguration(
EventProcessorOptions options,
PartitionManagerOptions partitionOptions = null)
{
if (options == null)
{
options = EventProcessorOptions.DefaultOptions;
options.MaxBatchSize = 1000;
}
_partitionOptions = partitionOptions;
_options = options;
}