Unterstützt Rebus die Web-App-Publishing-Nachricht und das Abonnieren der Nachricht
-
21-12-2019 - |
Frage
Ich bin neu in Rebus. Es gibt eine Fragen, die ich fragen möchte:
- .
- Es ist eine gute Idee, die Web-App-Nachricht zu erstellen, und die Nachricht abonnieren.Und unterstützt Rebus diese Funktionen.
ich teste Server-Modus , jedoch funktioniert es nicht.Es handhabt die Nachricht nur eine Nachricht (von Pubsubsample.webscscriber1.input-Warteschlange), wenn die Web-App gestartet wird.
BTW, es funktioniert gut im Ein-Wege-Client-Modus. (Nur Nachricht senden)
Hier ist mein Code-Segment für den Servermodus:
generasacodicetagpre.asp.net mvc
generasacodicetagpre.web.config
generasacodicetagpre.
Lösung
Um Ihre erste Frage zu beantworten,
Ob sollte eine andere Sache ist :)
Webanwendungen in .NET sind irgendwie vorübergehend in der Natur, dh sie sind recycelt, wenn IIS entscheidet, dass es Zeit ist, sich zu recyceln, und dann ist es normalerweise nicht die beste Idee, Nachrichten zu abonnieren, da Ihre Anwendung möglicherweise nicht läuft Ein Ereignis wird veröffentlicht, so dass es nicht umzugehen ist.
und dann, wenn es aufwacht, weil IIS eine Webanforderung dabei ist, haben Sie möglicherweise 1.000.000 Ereignisse, die darauf warten, von Ihrer Anwendung abzurufen, was eine Weile dauert, bis sie kauen kann.
In einigen Fällen habe ich gehört, von den Leuten, die Rebus PUB / SUB in Webanwendungen verwenden möchten, um einen in der Web-App aktualisierten Cache aufzubewahren - aber dann hatten sie schwere Probleme, die von der Tatsache stammen, dass IIS zwei Instanzen überlappen Von derselben Webanwendung - iow, plötzlich, plötzlich, für kurze Zeit wurden zwei Instanzen derselben Webanwendungen ausgeführt, wodurch eine Webanwendung dazu dient, ein paar Ereignisse herunterzufahren, um ein paar Ereignisse zu schnappen, die von der neuen Instanz abgewickelt werden sollen. < / p>
Aus diesen Gründen würde ich im Allgemeinen
Also,
tun Sie dies statt:
generasacodicetagpre.Auf diese Weise hört der Bus nicht auf, Nachrichten unmittelbar nach dem Start Ihrer Web-App zu behandeln.