Heim  >  Artikel  >  Backend-Entwicklung  >  Beim Eilkauf wird eine asynchrone Warteschlange zur Bearbeitung von Bestellungen verwendet. Wie können Benutzer also in Echtzeit über die Bestellergebnisse informiert werden?

Beim Eilkauf wird eine asynchrone Warteschlange zur Bearbeitung von Bestellungen verwendet. Wie können Benutzer also in Echtzeit über die Bestellergebnisse informiert werden?

WBOY
WBOYOriginal
2016-10-17 09:30:141944Durchsuche

Beim Eilkauf wird eine asynchrone Warteschlange zur Bearbeitung von Bestellungen verwendet. Wie benachrichtigen Sie Benutzer in Echtzeit über die Bestellergebnisse?

Antwortinhalt:

Beim Eilkauf wird eine asynchrone Warteschlange zur Bearbeitung von Bestellungen verwendet. Wie benachrichtigen Sie Benutzer in Echtzeit über die Bestellergebnisse?

Der Client verwendet js, um eine Schnittstelle abzufragen, um den Verarbeitungsstatus zu erhalten

Das Wichtigste beim Eilkauf ist die Sicherstellung einer starken Konsistenz der Bestandsdaten. Der momentane Datenverkehr beim Eilkauf ist sehr groß. Wenn Sie einige relationale Datenbanken wie MySql verwenden, können Sie diesem Druck möglicherweise nicht standhalten. Im Allgemeinen wird es in Kombination mit Caching-Middleware wie Redis verarbeitet. Bevor der Eilkauf beginnt, werden die Produkt- und Bestandsdaten mit Redis synchronisiert. Alle Eilkaufvorgänge werden im Hintergrund ausgeführt, um die Bestandsdaten regelmäßig in die Datenbank zu übertragen.
Beginnen Sie dann mit der Bezahlung der Bestellung. Aufgrund des großen Datenverkehrs begrenzt das Drittanbieter-Zahlungssystem selbst auch den Datenverkehr der aufrufenden Anwendung. Daher sollte das, was Sie hier gesagt haben, das sein, was ich als Nächstes beschreiben muss.
Hier muss eine Nachrichtenwarteschlange verwendet werden (das heißt, was Sie als asynchrone Warteschlange bezeichnen). Sie können sich auf die aktuellen Begrenzungsmaßnahmen von Taobao Double 11 beziehen, um das System vor den Auswirkungen von hohem Datenverkehr zu schützen und einen Systemabsturz zu verursachen Für eine Pufferschutzebene muss das System ein Fenstermodell entwerfen. Das Fenstermodell aktualisiert den Status der Benutzervorgänge in Echtzeit.
Nachdem der Benutzer beispielsweise eine Bestellung aufgegeben und sich auf die Zahlung vorbereitet hat, springt er zum Servicefenster in der Servicehalle. Wenn das Fenster zu diesem Zeitpunkt voll ist, d Das System kann mit der Warteschlange beginnen, indem es das Wartefenster öffnet und den Benutzer eine Weile warten lässt. Sobald ein inaktiver Thread freigegeben wird, kann der Benutzer mit dem Bezahlen und Aufgeben von Bestellungen beginnen.
Die obige Beschreibung basiert auf dem Modell des Aufnehmens von Fotos zur Reduzierung des Lagerbestands. Wenn das von Ihnen entworfene System den Lagerbestand durch Zahlung reduzieren soll, gibt es geringfügige Unterschiede, um den Benutzer darüber zu informieren Status Die Zahlung des Benutzers erfolgt rechtzeitig. Der Status wird jedoch nicht rechtzeitig an den Benutzer zurückgegeben, und der Benutzer kann seinen Fensterstatus zeitnah über eine Seite anzeigen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn