2016-12-13 7 views
2

Azureサービスバスのトピックにメッセージを投稿するシステムがあります。トピックには複数のユーザがおり、メッセージを処理するwebJobを作成しています。1つ以上のAzure WebJobを使用する必要があります

私はVisual Studioで新しいWebJobプロジェクトを気にするときに、「Functions.cs」というクラスを取得します。このクラスにはキューをチェックするコードがあります。私は、トピック内のサブスクリプションを確認するために、コードを更新しました:

public static void ProcessTopicMessage([ServiceBusTrigger("topic-name", "subscription-name")] string message, TextWriter log) 
{ 
    // Processing goes here 
} 

トピックは私が監視し、受信したメッセージごとに異なるアクションを実行する必要がある複数のサブスクリプションを持っています。これには、サブスクリプションごとに異なるAPIであるAPIを介してサードパーティのサービスに接続する必要があります。

例:

topic-name 
    subscription-1 // Perform action #1 
    subscription-2 // Perform action #2 
    subscription-3 // Perform action #3 
    ... 

私の質問です:私は、各サブスクリプションのために別々のWebJobを書くべきか、私は「Functions.cs」クラスにメソッドを追加する必要がありますか?

同じWebJobに複数のメソッドがあり、メソッドを非同期にする必要がある場合、パフォーマンスが低下するのではないかと思います。

+1

http://stackoverflow.com/a/40295414/4167200 – Thomas

+0

おかげ@Thomas。 :-) –

答えて

1

私の質問は:サブスクリプションごとに別々のWebJobを書くべきですか、または「Functions.cs」クラスに追加のメソッドを追加する必要がありますか?

あなたの要件に応じて、同じトピックをサブスクライブする複数のサブスクリプションがあり、各サブスクリプションで同じメッセージを処理するロジックが異なります。

複数のサブスクリプションが同じ設定(Azure ServiceBusのApp Settings)を共有し、各サブスクリプションが同様のロジックを処理するため、私の理解したことです。複数の機能は、複数のインスタンスに拡大縮小可能な同じホストを再利用することができます。私は、同じWebJob内の複数の機能がより良いアプローチであると想定していました。

同じWebJobに複数のメソッドがあり、メソッドを非同期にする必要がある場合、パフォーマンスが低下するかどうかは疑問です。

知られているように、JobHostは、機能が起動されたときに管理対象スレッドプールからスレッドを開始します。あなたは次のようにServiceBusからのメッセージを処理するために、同時呼び出しの最大数を設定できます。

ServiceBusConfiguration.MessageOptions.MaxConcurrentCalls=20 //16 by default 

サードパーティのAPIを呼び出しますので、あなたのWebJobのスケーラビリティを高めるために、非同期としてあなたの関数をマークできます。また、パフォーマンスのために非同期についてのissueがあります。それを参照できます。

1

サブスクリプションごとにWebジョブを作成するか、すべてのWebジョブを作成するかは、要件に応じて異なります。

例:

どのくらいの時間、それは要求を処理するために時間がかかりますか?複数のサブスクリプションが非常に今回のSLAがあり、パフォーマンスに影響を与えるかどうか

する場合は、この質問に答える

が決定されますか?

あなたが要求ごとにSLAを持っている場合は、あなたがそれ以外の場合は、1が

十分でしょう、各サブスクリプションのために別のものにウェブの仕事をスケーリングする必要があるかもしれませんが、各サブスクリプションのための特別な設定はありますか?

すべてのサブスクリプションが同じ接続、設定を共有する場合は、サブスクリプションごとに個別のWebジョブは必要ありません。

あなたはまた、あなたの戦略パターンができ、それぞれに固有のロジックを実装するための独自のクラスにそれぞれのサブスクリプションを移動

関連する問題