0

Azure Service Fabricの新機能です。Azure Service Fabric上で長時間実行されているサービスの複数のインスタンスを動的に起動する方法

私のシナリオでは、複数のインスタンスを動的に起動/停止する必要があり、起動が非ブロックである必要がある長期実行サービスがあります。それぞれのインスタンスは1つのデータ入力を独立して処理します。例:

私は、各都市の気象データを取得し続け、長時間走っている気象サービスを持っています。私は変化する都市のリストを持っています。だから、私は次のようなことをしたい:

var weatherSvcList = new List... 
var currentCities = []; 
while (true) 
{ 
    var newCities = FetchCities(); 

    var addedCities = newCities.Except(currentCities); 
    weatherSvcList = LaunchSvc(addedCities); // launch and return, non-blocking 

    var removedCities = currentCities.Except(newCities); 
    weatherSvcList = StopSvc(removedCities); 

    weatherSvcList = RelaunchErrorSvc(cities); 

    currentCities = newCities; 
} 

私は俳優のモデルに見えたが、俳優が長時間実行中のタスクには適していないように思えるし、また起動するのは難しいました/それらを停止します。私が使用すべきサービス/プログラミングモデルは何ですか?

答えて

0

ここでタスクキューを使用することを検討してください。

天気予報サービスが呼び出されると、気象データを取得するタスクが実行されます。無限ループ(RunAsync)も実行されますが、このループはタスクをデキューして実行します。

この方法では、作業はバックグラウンドで実行されますが、サービスコールはすぐに戻ります。

インスピレーションのためのコードhere

+0

ありがとうございます。私は明日の朝にそれをチェックします。ハッピーな感謝! –

+0

メッセージをデキューして無限ループで処理するために、バックグラウンドで実行されるサービスはどれですか? –

関連する問題