2016-11-18 8 views
1

最新のMicrosoft.Azure.WebJobs.ServiceBus packageでは、eventhubsのreceive batches of messagesにアクセスできます。バッチで受信したいメッセージの数を設定したいと思います。Azure関数のReceiverバッチサイズを設定する方法EventHubリスナー?

コアServiceBusライブラリでは、Receive()機能をオーバーロードし、batch sizeを指定できます。

initial config of an EventHubs receiverでこれを行うにはどうすればよいですか、それとも別の何かが必要ですか?新しいEventHubConfigurationを作成するときに

答えて

3

hereが説明するようにhost.jsoneventHub構成ブロックを経由して機能でこれを行うことができます。例えば:

{ 
    "eventHub": { 
     "maxBatchSize": 500, 
     "prefetchCount": 100 
    } 
} 

私たちが作成したときに我々はEventProcessorOptionsにそれらの設定を適用EventProcessorHosthereを参照してください)。

1

ステフは、

EventProcessorOptionsを介して設定することができMaxBatchSize

、あなたはそれをパラメータとして渡すことができます。

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); 

EventProcessorOptionsが指定されていない場合は、EventHubConfiguration.csのソースコードにお気づきのように、MaxBatchSizeはデフォルトで1000代わりの10に設定されています。

public EventHubConfiguration(
     EventProcessorOptions options, 
     PartitionManagerOptions partitionOptions = null) 
{ 
    if (options == null) 
    { 
     options = EventProcessorOptions.DefaultOptions; 
     options.MaxBatchSize = 1000; 
    } 
    _partitionOptions = partitionOptions; 

    _options = options; 
} 
関連する問題