2017-07-14 16 views
0

3つのインスタンスで動作する小さなWebJobがあり、ServiceBusTriggerによってWebJobが起動され、各ジョブは約20秒かかっています。Azure WebJobスケールアウトのみ2つのジョブが動作しています

enter image description here

今私はServiceBusキューへの3つの項目を追加するだけで2 WebJobインスタンスが動作しています。

3番目のインスタンスは何をしていますか、インスタンスをキューでも動作させる方法を教えてください。

私のコードは非常に基本的である:

public class Functions 
{ 
    // This function will get triggered/executed when a new message is written 
    // on an Azure Queue called queue. 
    public static void ProcessQueueMessage([ServiceBusTrigger("jobs2")] string message, TextWriter log) 
    { 

     string url = "https://requestb.in/xxxxx"; 
     log.WriteLine(message); 
     log.WriteLine("gotmsg"); 
     Thread.Sleep(20000); 
     log.WriteLine("sending"); 

     string postData = "test=" + message; 

     Console.WriteLine(postData); 

     System.Net.WebRequest req = System.Net.WebRequest.Create(url); 
     //Add these, as we're doing a POST 
     req.ContentType = "application/x-www-form-urlencoded"; 
     req.Method = "POST"; 
     //We need to count how many bytes we're sending. Post'ed Faked Forms should be name=value& 
     byte[] bytes = System.Text.Encoding.ASCII.GetBytes(postData); 
     req.ContentLength = bytes.Length; 
     System.IO.Stream os = req.GetRequestStream(); 
     os.Write(bytes, 0, bytes.Length); //Push it out there 
     os.Close(); 
     System.Net.WebResponse resp = req.GetResponse(); 
     if (resp == null) return; 
     System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()); 
     log.WriteLine(sr.ReadToEnd().Trim()); 
    } 
} 

答えて

1

どうやって3番目のインスタンスであり、どのように私は、インスタンスは、キュー上で動作するように得ることができますか?

3番目のインスタンスshoudがデフォルトとして機能します。私は、Azure WebAppが複数のインスタンスに対して指定されたLoadBalance戦略を使用すると仮定します。そして、私たちにはLoadBalance戦略を設定する方法がないようです。あなたの場合、3つのメッセージだけではテストができないようです。より多くのメッセージでそれをテストしようとしてください。そして私は私の側でそれをテストし、正しく動作します。以下は、私が使ったメッセージを送信するためのテストコードです。

QueueClient.CreateFromConnectionString("connection string", QueueName); 

for (int i = 0; i < 20; i++) 
{ 
    var sendMessage = new BrokeredMessage("test message"+i); 
    client.Send(sendMessage); 
} 

enter image description here

関連する問題