2016-12-16 7 views
1

リアクティブエクステンションを使用して特定のアクションを特定の時間にトリガしました。リアクティブエクステンション.Net - ハイアベイラビリティ

例:特定のユーザー操作の2分後に何かします。

構文:IIS /サーバーが再起動された場合

var observable = Observable.Timer(new TimeSpan(0, 0, someTime)).Take(1); 
var subscribe = observable.Subscribe(i => 
        { 
         DoSomething(); 
         } 
        }); 

しかし今、このトリガーが失われます。これは、コードをホストしている複数のApp Serverで高可用性展開が行われているため、永続化する必要があります。

これを解決する方法をお手伝いします。

+0

何を試しましたか? – Asti

+0

代わりにQuartz.Netクラスタを使うことを考えましたが、それは既存のコードを変更することを意味します。 –

+0

プログラム状態の永続性は一般化するには複雑すぎる問題です。すべてのコールバックがキャプチャされていませんか? – Asti

答えて

4

しかし、IIS /サーバーを再起動すると、このトリガーは失われます。この は、コードをホストしている複数のアプリケーションサーバー で利用可能な高可用性があるため、永続化する必要があります。

おそらく、リアクティブエクステンションは答えではありません。

メッセージキューまたはサービスバスを使用するようです。

あなたがこのアプローチについての詳細を掘るしたい場合は、これらの技術を確認してください:

また、MassTransitを見て、上記のメッセージングテクノロジの一部を使用することができるサービス・バスを取ります。

関連する問題