2015-01-07 9 views
16
public static void ProcessMessage([QueueTrigger("queue")] string message, TextWriter log) 
{ 
    //processing message 
} 

このメソッドがどのようにトリガされるか。WebJob QueueTriiggerはどのようにトリガー、ポーリング、またはイベントを行いますか?

WebJobホストがストレージキューをポーリングするだけです。 またはストレージキューは、そのホストが購読している新しいメッセージイベントを発生させますか?

+1

ポーリングです。 Azureストレージはイベントを発生させません! – astaykov

答えて

28

このリンクはあなたの答えです。

http://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-storage-queues-how-to/

ポーリングアルゴリズム

SDKは にストレージ取引費用のアイドルキューのポーリングの影響を低減するために、ランダムな指数バックオフアルゴリズムを実装しています。 メッセージが見つかると、SDKは2秒間待ってから別のメッセージ をチェックします。メッセージが見つからない場合は、再度試行する前に約4秒待って してください。その後、キュー のメッセージを取得しようとして失敗した場合、最大待機時間の に達するまで待機時間が増加し続けます。デフォルトは1分です。最大待ち時間は です。

これも役に立ちます。

JobHostConfiguration config = new JobHostConfiguration();  
config.Queues.MaxPollingInterval = TimeSpan.FromMinutes(1);   
JobHost host = new JobHost(config); 
host.RunAndBlock(); 
+0

よかった、ありがとう! –