Frage

Ich versuche, herauszufinden, wie man eine Datenbank einrichten würde und / oder Modell, um verschiedene Abzeichen zu handhaben. Lets nehmen Sie die Stack-Überlauf Abzeichen als Beispiel. Es gibt verschiedene Regeln für jeden und einige vielleicht nur eine Variable anders (wie 10 Kommentare vs 100 Kommentare) sein.

Meine Frage ist, wie kann man innerhalb einer Anwendung dieser Art Validierung / Check-up? Sollte jedes Abzeichen seine eigene Methode hat?

War es hilfreich?

Lösung

sein, das so läuft aus SQL Server, SQL Server-Agent-Auftrag, in regelmäßigen Abständen zu tabellieren Statistiken zu führen. Die gespeicherte Prozedur (en) im Job in ein Abzeichen / etc Tabelle einfügen würde, wenn Kriterien erfüllt ist.

würde Trigger eine weitere Option sein, aber ihre Ausführung nicht für den Umfang von mehreren Benutzern verzögert werden.

Andere Tipps

Das ist, wie ich es zu implementieren, wenn es nötig ist:

Ich werde einige Warteschlangen-Manager einrichten (es gibt eine Menge solchen Software ist) und einen Broker schreiben, dass die Nachrichten aus der Warteschlange verarbeiten.

Jedes Mal ein Ereignis eintritt, wie zum Beispiel: Sie ein Thema angezeigt, bearbeitet Sie Ihren Kommentar, Sie Ihre Antwort bearbeitet, Sie eine andere Person Antwort bearbeitet, upvoted Sie, etc etc - Sie sammeln eine weitere Meldungen mit Ereignisbeschreibung. Ja, es wird wirklich riesige Menge an Nachrichten gibt.

Nachdem Sie diese riesige Menge an Nachrichten sammeln -. Sie können einen Broker starten, die Nachrichten nach Zeitplan oder in Echtzeit verarbeiten

Mit diesem Schema Sie einen Broker erweitern könnte so komplex Abzeichen, wie Sie wollen.

Ich könnte mir vorstellen, etwas berechnet in Echtzeit, während andere in Prozessen berechnet werden, die intermittierend ausgeführt werden.

Zum Beispiel für das Abzeichen, das angezeigt wird, wenn Ihre Antwort 10 upvotes bekommt, dass Echtzeit mit wenigen Leistungseinbußen berechnet werden.

Auf der anderen Seite, für das Abzeichen, dass überprüft, ob Sie die täglichen Ruf Kappe x-mal getroffen, würden Sie wahrscheinlich, dass als eine Art Batch-Job machen wollen, da man erst am Ende eines jeden Tages überprüfen.

Das Hauptanliegen ist, die Dinge schnell laufen zu halten. Stapelüberlauf wird Tausende (vielleicht Zehntausende) von Fragen am Tag, mit wahrscheinlich Hunderttausenden von Kommentaren. Alles, was nicht trivial zu berechnen ist, sollte in einem separaten Prozess ausgeführt werden. Es hält die Funktionalität fest Kern begrenzt und sauber, hohe Leistung ermöglicht. Ausführen komplexer Berechnungen in Prozesse außerhalb des Kernbuchungssystem ermöglicht es Ihnen, dies zu tun, ohne die Fähigkeit der Benutzer zu beeinträchtigen, die Website zu nutzen. Wenn eine Aufgabe hinreichend komplex ist, können Sie horizontal skalieren, indem Sie nur den gleichen Prozess auf mehreren Rechnern laufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top