Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 34045|Antwort: 6

[Quelle] .NET verwendet den Redis-Cache für Ablaufbenachrichtigungen

[Link kopieren]
Veröffentlicht am 22.8.2020, 10:34:59 | | | |
Bei bestimmten zeitgesteuerten Operationen benötigen wir Rückmeldung zu den Ergebnissen. Zum Beispiel werden Bestellungen nach Ablauf automatisch gelöscht, Bestellungen automatisch nach einigen Tagen gelobt, unbezahlte Bestellungen nach 15 Minuten geschlossen usw., was mit einigen zeitgesteuerten Aufgaben-Frameworks oder Abfragemethoden abgeschlossen werden kann. Dieser Artikel verwendet den Redis Advanced Feature Cache Expiration Event Notification Mechanism in Kombination mit .NET/C#-Code, um geschäftliche Anforderungen zu erfüllen.

Einleitung

Anwendungsszenarien: 1. Im Zahlungsgeschäft werden unbezahlte Bestellungen automatisch geschlossen 2. Cache-Ablauf-Erinnerungen

Im Allgemeinen können wir den Timing-Service nutzen, um die automatische Schließung unbezahlter Bestellungen zu verarbeiten, etwa indem wir die Schnittstelle jede Minute aufrufen, um unbezahlte und abgelaufene Bestellungen zu bearbeiten, aber in diesem Fall verbraucht er die Computerleistung, selbst wenn keine Bestellung vorliegt, wird sie jede Minute bearbeitet, die maximale Verzögerung der Auftragsbearbeitungszeit beträgt 59 Sekunden, und der Timing-Service muss immer verfügbar sein

Was wollen wir also tun? Nur wenn es unbezahlte und abgelaufene Bestellungen mit niedriger Latenz gibt? Wir können den Cache-Ablaufmechanismus von Redis nutzen, um das Abonnement zu pushen.

Redis-Abonnement

Ändere die Notify-Keyspace-Events Ex in der Konfigurationsdatei redis.conf

Um Cup-Ressourcen zu sparen, sind Ereignisbenachrichtigungen standardmäßig nicht aktiviert, und standardmäßig ist notify-keyspace-events aktiviert

# K-Schlüsselraum-Benachrichtigung, <db>mit __keyspace@__
# E-Schlüssel-Ereignisbenachrichtigung, <db>vorangestellt mit __keysevent@__
# g del, exipre, umbenennen und andere Arten von generischen Befehlen, ...
# $string Befehl
# L Listenbefehl
#s Kommando setzen
# h Hash-Befehl
# z geordnete Set-Befehle
# x Ablaufereignis (erzeugt jedes Mal, wenn ein Schlüssel abläuft)
# e Räumungsereignis (erzeugt, wenn der Schlüssel gelöscht wird, wenn der Speicher voll ist)
# Ein g$lshzxe-Alias, also bedeutet "AKE" alle Ereignisse


Notify-Keyspace-Events "KX" zeigt an, dass Sie auf Ungültigkeitsereignisse für einen Schlüssel achten möchten. Das Setzen des Parameters auf die AKE-Zeichenkette bedeutet, alle Arten von Benachrichtigungen zu senden.

Ich habe Redis as Service auf meinem Rechner installiert, die redis.windows.conf-Konfigurationsdatei geändert und musste die Redis-Service-Konfiguration neu starten, damit sie wirksam werden konnte.

Beispiel für .NET/C#-Code

Das Paket ist wie folgt:



anrufen



Versuchen wir, einen Cache mit redis-cli zu schreiben.





Tatsächlich können Sie auch Benachrichtigungen über Cache-Ablauf abonnieren, indem Sie folgenden Befehl über redis-cli ausführen:




Wenn N Clients Benachrichtigungen über Cache-Ablaufereignisse abonnieren, benachrichtigt Redis N Nutzer über dieselbe Ablaufmeldung, nicht nur einen der Clients, wie in der Abbildung unten gezeigt:



C#-Quellcode-Download:

https://down.itsvse.com/item/17856.html

Zusammenfassung

Redis Pub/Sub ist ein unzuverlässiger Nachrichtenmechanismus, es speichert keine Informationen, es leitet nur online weiter, es gibt definitiv keinen Ack-Bestätigungsmechanismus, und nur das Abonnementsegment wird weitergeleitet, daher ist Keyspace Notifications ebenfalls ein unzuverlässiges Benachrichtigungssystem; wenn unser Unternehmen gute Zuverlässigkeit benötigt, ist das nicht die beste Wahl. Im Allgemeinen empfehlen wir RabbitMQs DLX (Dead-Letter-Exchange) zur Implementierung, also die verzögerte Warteschlangenfunktion. Es ist nur so, dass die Lösung von Redis leichter umzusetzen und kostengünstiger in der Betreibung ist. Es ist immer noch sehr praktisch für Unternehmen, die keine hohe Zuverlässigkeit benötigen.




Vorhergehend:.NET Core 3.1 Installation chinesischer Smart-Prompt
Nächster:.NET erhält nicht die vollständige Referenz-Assembly
Veröffentlicht am 29.8.2020, 14:33:18 |
Lernen lernen
Veröffentlicht am 30.11.2021, 13:16:47 |
Lerne es
Veröffentlicht am 30.11.2021, 13:21:02 |
Redis Pub/Sub ist ein unzuverlässiger Nachrichtenmechanismus, es speichert keine Informationen, es leitet nur online weiter, es gibt definitiv keinen Ack-Bestätigungsmechanismus, und nur das Abonnementsegment wird weitergeleitet, daher ist Keyspace Notifications ebenfalls ein unzuverlässiges Benachrichtigungssystem; wenn unser Unternehmen gute Zuverlässigkeit benötigt, ist das nicht die beste Wahl. Im Allgemeinen empfehlen wir RabbitMQs DLX (Dead-Letter-Exchange) zur Implementierung, also die verzögerte Warteschlangenfunktion. Es ist nur so, dass die Lösung von Redis leichter umzusetzen und kostengünstiger in der Betreibung ist. Es ist immer noch sehr praktisch für Unternehmen, die keine hohe Zuverlässigkeit benötigen.
Veröffentlicht am 14.2.2022, 17:42:43 |
Schau, lern
Veröffentlicht am 2.3.2022, 15:25:00 |
Lerne es
Veröffentlicht am 27.7.2022, 16:40:13 |
Lernen lernen
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com