2017-03-19 2 views
0

Ich bin dabei, eine soziale Anwendung, die Benutzer und einen News-Feed beteiligt. Um den News-Feed eines Nutzers in chronologischer Reihenfolge anzuzeigen, welche der folgenden Aussagen wäre sinnvoller?Instagram Stil News Feed Logik

  1. Erhalten Sie alle Beiträge von jedem Benutzer die Person wird wie folgt und sortieren sie in chronologischer Reihenfolge
  2. Jedes Mal, wenn ein Benutzer schreiben geht, dass die ID speichern und das Datum in jedem ihrer Anhänger Profildaten (scheint überflüssig
  3. )
  4. Eine bessere Lösung, die Sie

Antwort

0

allgemeinen sozialen Websites sind unter Verwendung Graph-Datenbank kennen. Ich habe auf einer der sozialen Seiten gearbeitet. Unten war der Technologie-Stack und die Logik zum Anzeigen der News-Feeds.

  1. Java, Spring MVC

  2. OrientDb- A GraphDB Vertex enthält mit Kanten verbunden

  3. JQuery & Bootstrap für UI

  4. Apache Solr- für Textsuche auf Benutzer, die Artikel

war Unterhalb der Logik für Newsfeeds:

  1. Wenn jeder Benutzer jede Aktivität der Fall ist, verwendet wir Aktivität Vertex erstellen enthält die Meta-Daten von Aktivität wie Datums- und Uhrzeit, Art der Tätigkeit und Schauspieler usw.

  2. Wir hatten ein Batch-Programm (läuft nach jeweils 3 Minuten), die alle unverarbeiteten Aktivitäten gehen wird. Die Aufgabe der Charge besteht darin, die newsFeeds von Activity zu generieren und diese newFeeds_To_Be_Displayed an relevante Benutzer (d. H. Verbindungen von Actor) zuzuteilen newsFeeds auf dem Bildschirm angezeigt werden.

  3. Wenn sich der Benutzer anmeldet, haben wir newFeeds_To_Be_Displayed des angegebenen Benutzers abgefragt und auf dem Bildschirm angezeigt.

Wir wählten die newFeeds_To_Be_Displayed asynchron zu berechnen, wie ein zeitraubenden Prozess das ist, und wir wollen, vermöge in schlechter Benutzererfahrung landen.

+0

Wie würde dieser Ansatz funktionieren, wenn nach dem Anzeigen des aktuellen Inhalts mehr Inhalte geladen werden? Außerdem suche ich nach einem schlankeren Ansatz, bei dem ich schnell bestimmen kann, welche Beiträge in chronologischer Reihenfolge angezeigt werden sollen. Dies ist eine Menge Daten zu ziehen, also wollte ich herausfinden, ob es eine gute Möglichkeit, dies zu organisieren für die schnelle Bestimmung der Reihenfolge –

+0

Wenn Sie diese newsFeeds_To_Be als eine ArrayList angezeigt wird, wird es in chronologischer Reihenfolge sein. Sie können auch separate Listen lesen und ungelesene newsFeeds anzeigen lassen, wenn die ui die ungelesenenNewsFeeds aufruft, verschieben Sie die Elemente in dieser Liste zu readNewsFeeds. Der Stapeljob fügt mehr newsFeeds in UnreadnewsFeeds hinzu. – JRR