0

は私がすべてで(16デフォルトは)のBatchSizeを設定しないいずれか、または私はそれを設定しwebjobsトリガー:(頻繁にF5を押す)ちなみにAzureキューでトリガーされたWebジョブのメッセージのバッチ内のアイテム数を確認する方法はありますか?私Azureのキューに

JobHostConfiguration.Queues.BatchSize = ...;

をそれがどのような設定に関係なくのように思えますキュー内のアイテムの数は常に1だけ減少しています。が実際にはであることを確認したいのですが - どのような瞬間に捕まったメッセージの数を確認するにはどうすればいいですか?この値は、キュー・トリガー・メタデータの一部ではないようです。

答えて

0

私が知る限り、BatchSizeは同時に実行されるキューメッセージの最大数です(デフォルトは16です)。

私の意見では、晴れやかなwebjobsが16スレッドを一度に実行してその機能を実行することを意味します。

任意の時点で取得されたメッセージの数を確認したい場合。

ローカルデベロッパー環境でテストデモを書くことをお勧めします。

以下の機能を試すことをおすすめします。

public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TextWriter log) 
     { 
      Console.WriteLine("start to execute queue : " + message); 
      //log.WriteLine(message); 
      Thread.Sleep(10000); 
      Console.WriteLine("End to execute queue : " + message); 
     } 

コードの「Thread.Sleep(10000)」はスレッドを10秒間スリープ状態にします。

次に、最初にキューに20メッセージを追加し、webjobsを実行できます。良いアイデアだ enter image description here

+0

:それは、まず機能を実行するための16のスレッドを実行します

:以下のようにあなたが結果が見つかります

です。メッセージが一度に1つだけ取得されていることがわかったら、どうすればその問題を解決することを提案しますか? – Howiecamp

+0

あなたが知っている限り、あなたのwebjobにブレークポイントを設定すると、コードを実行しているすべてのスレッドがカウントダウンするのを止めます。F5を押す頻度にかかわらず、1つのキューメッセージを取得するスレッドが1つだけ実行されます。さらに、WebJobを空白にパブリッシュすると、 'AzureWebJobsDashboard' connectionStringを設定できます。この接続文字列を設定すると、azure webjobsはwebjobsの実行方法に関する詳細情報を自動的に記録します。 "log.WriteLine"を使用して、私の投稿が示すように情報を記録することができます。これらのログを読むことで、エラーのトラブルシューティングを行うことができます。 –

関連する問題