Heim  >  Artikel  >  Java  >  Wie SpringBoot Redisson integriert, um eine Verzögerungswarteschlange zu implementieren

Wie SpringBoot Redisson integriert, um eine Verzögerungswarteschlange zu implementieren

王林
王林nach vorne
2023-05-30 14:40:141655Durchsuche

Nutzungsszenarien

1. Die Bestellung wurde erfolgreich aufgegeben und innerhalb von 30 Minuten erfolgte keine Zahlung. Zahlungszeitüberschreitung,Bestellung wird automatisch storniert

2. Bestelleingang,Es wird keine Bewertung innerhalb von 7 Tagen nach Erhalt durchgeführt. Zeitüberschreitung der Bestellung und Nichtbeurteilung,Das System geht standardmäßig auf positive Bewertungen zurück

3.Bestellung erfolgreich aufgegeben,Händler hat die Bestellung 5 Minuten lang nicht angenommen,Bestellung abgebrochen

4.Push SMS-Erinnerung

… …

Für Szenarien mit langen Verzögerungen und geringer Echtzeitleistung können wir die Aufgabenplanung verwenden, um Abfragen in regelmäßigen Abständen durchzuführen. Zum Beispiel xxl-job

Heute verwenden wir eine relativ einfache und leichte Methode – die Verzögerungswarteschlange von Redis für die Verarbeitung. Natürlich gibt es bessere Lösungen – Sie können die optimale Lösung basierend auf der Technologieauswahl und dem Geschäftssystem des Unternehmens auswählen. Zum Beispiel mit der Nachrichten-Middleware Kafka und der Verzögerungswarteschlange von RabbitMQ. Ich werde vorerst nicht auf das Implementierungsprinzip eingehen. Gehen wir direkt zum eigentlichen Code, um die Redisson-Abhängigkeit einzuführen 2. Nacos-Konfiguration Redis-Verbindung

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <version>3.10.5</version>
</dependency>

3. Erstellen Sie eine Redis-Delay-Queue-Tool-Klasse Zählen Sie die im Verzögerungswarteschlangen-Executor definierten Beans auf und implementieren Sie sie. OrderPaymentTimeout: Verzögerungswarteschlangen-Verarbeitungsklasse für Auftragszahlungen Zeitüberschreitung und keine Auswertung

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    password: 123456
    database: 12
    timeout: 3000

8. Erstellen Sie einen Verzögerungswarteschlangen-Verbrauchsthread. Öffnen Sie ihn, nachdem das Projekt gestartet wurde Schreiben wir eine Testschnittstelle , simulieren und testen Sie sie mit PostMan , simulieren Sie das Hinzufügen einer Verzögerungswarteschlange , Die Schnittstelle zum Hinzufügen einer Verzögerungswarteschlange.

Über den Redis-Client können Sie sehen, dass die beiden Verzögerungswarteschlangen erfolgreich hinzugefügt wurden wurde erfolgreich konsumiert

Das obige ist der detaillierte Inhalt vonWie SpringBoot Redisson integriert, um eine Verzögerungswarteschlange zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen