AzureのWebjobについての質問です。以下のURLを参考にしています。
https://docs.microsoft.com/ja-jp/azure/app-service-web/websites-dotnet-webjobs-sdk
以下のソースですと、「webjobsqueue」のキューにメッセージが追加されたら、実行されます。
C#
1 public static void Main() 2 { 3 JobHost host = new JobHost(); 4 host.RunAndBlock(); 5 } 6 7 public static void ProcessQueueMessage([QueueTrigger("webjobsqueue")] string inputText, 8 [Blob("containername/blobname")]TextWriter writer) 9 { 10 writer.WriteLine(inputText); 11 }
この時、実行がまだ終わらないうちに次のメッセージを追加すると、前回の処理が終了していないのに、次の処理が開始されてしまいます。
例えば、「writer.WriteLine(inputText);」の後にsleepを入れてみます。
C#
1 public static void Main() 2 { 3 JobHost host = new JobHost(); 4 host.RunAndBlock(); 5 } 6 7 public static void ProcessQueueMessage([QueueTrigger("webjobsqueue")] string inputText, 8 [Blob("containername/blobname")]TextWriter writer) 9 { 10 writer.WriteLine(inputText); 11 System.Threading.Thread.Sleep(10000); 12 writer.WriteLine("処理終わったよ"); 13 }
この時、キューにメッセージを2回入れると、1回目の処理が終わらないうちに2回目の処理が走る事が解ります。
このような場合、1度目の処理が終了するまで次のキューを受け取らないというような事は可能でしょうか?
1回ずつちゃんと終わってから次の処理をやってほしい・・・なんて事は出来るのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/23 05:41