2016-12-16 3 views
1

Wir haben Reactive Extension verwendet, um bestimmte Aktionen zu einem bestimmten Zeitpunkt auszulösen.Reaktive Erweiterung .Net - Hohe Verfügbarkeit

Beispiel: Zwei Minuten nach einer bestimmten Benutzeraktion etwas tun.

Syntax:

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

Aber jetzt, wenn der IIS/Server neu gestartet wird, dieser Trigger verloren. Dies muss beibehalten werden, da wir eine hoch verfügbare Bereitstellung mit mehreren Anwendungsservern haben, die den Code hosten.

Helfen Sie uns mit einem Ansatz, um dies zu lösen.

+0

Was haben Sie alles versucht? – Asti

+0

Wir haben uns überlegt, den Quartz.Net-Cluster als Alternative zu verwenden, aber es würde bedeuten, den vorhandenen Code zu ändern. –

+0

Persistenz von Programmstatus ist zu komplex, ein Problem zu verallgemeinern. Sind alle Rückrufe nicht erfasst? – Asti

Antwort

4

Aber jetzt, wenn der IIS/Server neu gestartet wird, ist dieser Trigger verloren. Diese muss beibehalten werden, da wir eine hoch verfügbare Bereitstellung mit mehreren App-Servern haben, die den Code hosten.

Wahrscheinlich Reaktive Erweiterungen sind hier nicht die Antwort.

Es scheint, als ob Sie Nachrichtenwarteschlangen oder einen Servicebus verwenden sollten.

Schauen Sie sich diese Technologien, wenn Sie wollen mehr über diesen Ansatz graben:

Werfen Sie auch einen Blick auf MassTransit, einen Service-Bus, der einige der oben genannten Messaging-Technologien nutzen können.

Verwandte Themen