2017-05-18 8 views
0

Erstens, einige Hintergrund: Wir haben ein Benutzerkonto-Management-System (AMS) mit etwa 10K Benutzer. Nutzer greifen auf verschiedene Websites zu und machen Einkäufe. Die Websites wiederum belohnen die Nutzer. Alle Transaktionsdetails sowie die Kontostände werden von unserem AMS verwaltet.Warteschlangen Anfragen basierend auf Benutzer

Das AMS API erhält ein Token und Aktionsbeschreibung von den Webseiten für: 1. Kauf erfolgt durch den Benutzer 2. Belohnungen für den Benutzer durch Website gegeben

Problem - wir festgestellt, dass bei großer Belastung - einen Benutzer ist in der Lage, mehrere Käufe zu tätigen, auch nachdem sein Kontostand auf 0 gesunken ist. Was passiert, ist - die erste Anfrage ist vielleicht noch in Bearbeitung, während die zweite das System trifft. Ich möchte, dass die Anfrage jedes Benutzers in eine Warteschlange geht, damit sie ordnungsgemäß verarbeitet wird.

Bitte geben Sie einige deutliche Hinweise, was ich tun sollte, um diesen Schmerz zu lindern. Das System wurde mit .NET/MSSQL entwickelt.

Grüße

+0

Wie könnte jemand hier echte Hilfe anbieten? Wir wissen derzeit nicht, wie Ihr System funktioniert. Es gibt Dutzende von Potentialen hier, aber sie sind alle abhängig davon, wie Ihr System funktioniert. Vielleicht hören Sie auf, NOLOCK-Hinweise zu verwenden ... aber keine Ahnung, wenn Sie sie benutzen. Vielleicht mit Locking-Tipps? Ohne viel mehr Details die besten können es raten. Und das hört sich alles jenseits des Rahmens eines Online-Forums an. –

+0

Ich weiß, dass die Frage etwas vage ist. Ich erwarte Lösungen für die Verwendung einiger Architektur wie Service-Bus oder Warteschlangen oder sonst. – sabkaraja

+0

Wir wissen jedoch nichts über Ihr aktuelles System. Wir können Ihnen unmöglich helfen, eine bessere Lösung zu finden. Ich vermute, dass Sie einige Designprobleme haben, die dazu führen, dass Ihr System alles zu langsam verarbeitet. Zusätzlich habe ich das Gefühl, dass du Dirty Reads verwendest, die genau diese Art von Dingen erlauben würden. –

Antwort

0

Sind Sie Transaktionen in der SQL-Code? Mit einer Transaktion können Sie eine weitere Anfrage für den gleichen Benutzer abwarten, bis die erste fertig ist ...

Verwandte Themen